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
.headers Response对应的头部信息
.body Response对应的内容的信息,字符串类型
.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的基本使用
未完待续~

点赞

发表评论

昵称和uid可以选填一个,填邮箱必填(留言回复后将会发邮件给你)
tips:输入uid可以快速获得你的昵称和头像