Python 爬虫-Scrapy框架基本使用
发布日期:2022-04-02 18:15:37 浏览次数:8 分类:博客文章

本文共 1067 字,大约阅读时间需要 3 分钟。

2017-08-01  22:39:50

一、Scrapy爬虫的基本命令

Scrapy是为持续运行设计的专业爬虫框架,提供操作的Scrapy命令行。

  • Scrapy命令行格式

  • Scrapy常用命令

  • 采用命令行的原因

命令行(不是图形界面)更容易自动化,适合脚本控制本质上,Scrapy是给程序员用的,功能(而不是界面)更重要。

 

二、Scrapy爬虫的一个基本例子

演示HTML页面地址:http://python123.io/ws/demo.html

步骤一:建立一个Scrapy爬虫

选取一个文件夹,例如E:\python,然后执行如下命令。

此时在python文件夹下就会生成一个名为Python123demo的工程,该工程的文件结构为:

 

步骤二:在工程中产生一个Scrapy爬虫

使用cd进入E:\python\python123demo文件夹,然后执行如下命令。

该命令作用:

(1)生成一个名称为demo的spider
(2)在spiders目录下增加代码文件demo.py

该命令仅用于生成demo.py,该文件也可以手工生成

 

步骤三:配置产生的spider爬虫

demo文件是使用genspider命令产生的一个spider。

  • 继承于scrapy.Spider
  • name='demo'说明爬虫的名字是demo
  • allowed_domains指爬取网站时只能爬取该域名下的网站链接
  • star_urls是指爬取的一个或多个起始的爬取url
  • parse()用于处理响应并发现新的url爬取请求

配置:(1)初始URL地址 (2)获取页面后的解析方式

 

 

步骤四:运行爬虫,获取网页

执行如下代码:

demo爬虫被执行,捕获页面存储在demo.html

还有一种等价的表达方式:

 

三、Scrapy爬虫的基本使用

这四个步骤会涉及到三个类:Request类、Response类、Item类;

  • Request类

class scrapy.http.Request():Request对象表示一个HTTP请求,由Spider生成,由Downloader执行。

  • Response类

class scrapy.http.Response():Response对象表示一个HTTP响应;由Downloader生成,由Spider处理

  • Item类

class scrapy.item.Item():Item对象表示一个从HTML页面中提取的信息内容;由Spider生成,由Item Pipeline处理;Item类似字典类型,可以按照字典类型操作。

 

转载地址:https://www.cnblogs.com/hyserendipity/p/7271410.html 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Base64编码
下一篇:24点游戏

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年03月14日 14时50分06秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

cms 单点登录 php,Yii2 中实现单点登录的方法 2019-04-21
oracle自己运行,创建Oracle自动执行Job 2019-04-21
oracle报错00020,oracle启动 ORA-00020: maximum number of processes (%s) exceeded错误 2019-04-21
chmod 赋权所有_chmod 权限 命令详细用法 2019-04-21
html代码翻译_[译]您知道 HTML 的键盘标签吗? 2019-04-21
html抽奖代码_JavaScript高手之路:封装抽奖效果 2019-04-21
hadoop 3.3 一直停留在running wordcount_蛋价持续下跌,今日跌破3.3元大关!深秋季节价格还能反弹吗?... 2019-04-21
的流程图做完后如何保存_2019超火的半永久眉是哪款?做完后我们如何护理?... 2019-04-21
去除logo 高德地图api_深圳品牌logo升级如何保持原型的同时更具创新? 2019-04-21
二重积分转换成极坐标_二重积分转换极坐标r的范围如何确定? 2019-04-21
python中倒背如流_八字基础知识--倒背如流篇 2019-04-21
以太坊地址和公钥_以太坊地址是什么 2019-04-21
linux查看wifi信号命令_linux – 获取WIFI信号强度 – 寻求最佳方式(IOCTL,iwlist(iw)等)... 2019-04-21
npm 不重启 全局安装后_解决修复npm安装全局模块权限的问题 2019-04-21
vs格式化json 不生效_vs code 格式化 json 配置 2019-04-21
go 字符串反序列化成对象数组_Fastjson 1.2.24反序列化漏洞深度分析 2019-04-21
onmessage websocket 收不到信息_WebSocket断开重连解决方案,心跳重连实践 2019-04-21
hibernate mysql 缓存_hibernate和mysql的缓存问题,没辙了! 2019-04-21
abp框架 mysql_ABP框架使用Mysql数据库 2019-04-21
mysql树形递归删除_使用递归删除树形结构的所有子节点(java和mysql实现) 2019-04-21