python爬虫学习笔记(四)——初学scrapy框架

scrapy框架

初学scrapy框架,做下笔记
#scrapy爬虫框架结构
  • (一).爬虫框架:爬虫框架是实现爬虫功能的一个软件结构和功能组价集合
                              爬虫框架是一个半成品,能够帮助用户实现专业网络爬虫
  • (二).“5+2”结构
#scrapy爬虫框架解析
Engine模块(不需要用户修改):控制所有模块之间的数据流,根据条件触发事件
Downloader模块(不需要用户修改):根据请求下载网页
Scheduler模块(不需要用户修改):对所有爬取请求进行调度管理
Downloader Middleware中间键
目的:实施Engine,Scheduler和Downloader之间进行用户可配置的控制
功能:修改,丢弃,新增请求或响应
用户可以编写配置代码
Spider模块(需要用户编写配置代码)
  • 解析Downloader返回的响应(Response)
  • 产生爬取项(scraped item)
  • 产生额外的爬取请求(Request)
Item Pipelines模块(需要用户编写配置代码)
  • 以流水线方式处理Spider产生的爬取项
  • 由一组操作顺序组成,类似流水线,每个操作是一个Item Pipeline类型
  • 可能操作包括:清理,检验和查重爬取项中的HTML数据,将数据存储到数据库
Spider Middleware中间键
目的:对请求和爬取项的再处理
功能:修改,丢弃,新增请求或爬取项
用户可编写配置代码
#requests库和Scrapy爬虫的比较
requests vs. Scrapy
相同点
两者都可以进行页面请求和爬取,Python爬虫的两个重要技术路线
两者可用性都好,文档丰富,入门简单
两者都没用处理js、提交表单、应对验证码等功能(可扩展)
不同点
requests scrapy
页面级爬虫 网站级爬虫
功能库 框架
并发性不足,性能较差 并发性好,性能较高
重点在于页面下载 重点在于爬虫结构
定制灵活一般定制灵活,深度定制困难
上手简单入门稍难
如果是非常小的需求,requests库
不太小的需求,scrapy框架
#scrapy爬虫常用命令
scrapy strartproject name创建一个name的工程
scrapy genspider pc创建一个爬虫
scrapy settings获得爬虫配置信息
scrapy crawl <spider> 运行一个爬虫
scrapy list 列出工程中所有爬虫
scrapy shell [url] 启动url调试命令行
#yield关键字的使用
yield——生成器
  • 生成器是一个不断产生值的函数
  • 包含yield语句的函数是一个生成器
  • 生成器每一次产生一个值(yield语句),函数被冻结,被唤醒后再产生一个值
优势,更节省存储空间,响应更加迅速,使用更灵活
#scrapy爬虫的基本使用
Scrapy爬虫的使用步骤
步骤1:创建一个工程和Spider模板
步骤2:编写Spider
步骤3:编写Item Pipeline
步骤4:优化配置策略
Scrapy爬虫的数据类型
Request类;Response类:Item类
Request类
class scrapy.http.Request()
  • Request对象表示一个HTTP请求
  • 由Spider生成,由Downloader执行
属性或方法 说明
.url requests对应的请求url地址
.method对应的请求方法,‘GET’'POST'等
.headers 字典类型分格的请求头
.body 请求内容的主体,字符串类型
.meta用户添加的扩展信息,在scrapy内部模块间传递信息的使用
.copy() 复制该请求
Response类
class scrapy.http.Response()
  • Response对象表示一个HTTP响应
  • 由Downloader生成,由Spider处理
属性或方法说明
.url response对应的url地址
.status HTTP状态码,默认是200
.headersResponse对应的头部信息
.bodyResponse对应的内容的信息,字符串类型
.flags一组标记
.request产生Response类型对应的Requests对象
.copy()复制该响应
Item类
class scrapy.item.Item()
  • Item对象表示一个从HTML页面中提取的信息内容
  • 由Spider生成,由Item Pipeline处理
  • Item类似字典类型,可以按照字典类型操作
Scrapy爬虫提取信息的方法
Scrapy爬虫支持多种HTML信息提取方法
  • Beautiful Soup
  • lxml
  • re
  • XPath Selector
  • CSS Selector
CSS Selector的基本使用
未完待续~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值