Python爬虫教程之Scrapy 框架

时间:2020-08-29 09:57:34   收藏:0   阅读:61

一、Scrapy 框架

Scrapy 是?纯 Python 实现?个为了爬取?站数据、提取结构性数据?编写的应?框架,?途?常?泛。

框架的?量,?户只需要定制开发?个模块就可以轻松的实现?个爬?,?来抓取??内容以及各种图?,?常之?便。

Scrapy 使?了 Twisted [‘tw?st?d] (其主要对?是 Tornado)异步?络框架来处理?络通讯,可以加快我们的下载速度,不???去实现异步框架,并且包含了各种中间件接?,可以灵活的完成各种需求。

 

Scrapy 架构图(绿线是数据流向):

技术分享图片

 

二、Scrapy 的运作流程

代码写好,程序开始运?...

  1. 引擎 :Hi! Spider , 你要处理哪?个?站?
  2. Spider :??要我处理 xxxx.com。
  3. 引擎 :你把第?个需要处理的 URL 给我吧。
  4. Spider :给你,第?个 URL 是 xxxxxxx.com。
  5. 引擎 :Hi! 调度器 ,我这有 request 请求你帮我排序?队?下。
  6. 调度器 :好的,正在处理你等?下。
  7. 引擎 :Hi! 调度器 ,把你处理好的 request 请求给我。
  8. 调度器 :给你,这是我处理好的 request
  9. 引擎 :Hi!下载器,你按照??的 下载中间件 的设置帮我下载?下这个 request 请求
  10. 下载器 :好的!给你,这是下载好的东?。(如果失败:sorry,这个request 下载失败了。然后 引擎 告诉 调度器 ,这个 request 下载失败了,你记录?下,我们待会?再下载)
  11. 引擎 :Hi! Spider ,这是下载好的东?,并且已经按照??的 下载中 间 件 处理过了,你??处理?下(注意!这?responses 默认是交给 defparse() 这个函数处理的)
  12. Spider :(处理完毕数据之后对于需要跟进的 URL),Hi! 引擎 , 我 这?有两个结果,这个是我需要跟进的 URL,还有这个是我获取到的 Item 数据。
  13. 引擎 :Hi ! 管道 我这?有个 item 你帮我处理?下! 调度器 !这是需 要跟进 URL 你帮我处理下。然后从第四步开始循环,直到获取完??需要全部信息。
  14. 管道``调度器 :好的,现在就做!

注意!只有当 调度器 中不存在任何 request 了,整个程序才会停?,(也就是说,对于下载失败的 URL,Scrapy 也会重新下载。)

制作 Scrapy 爬? ?共需要 4 步:

点击获取 爬虫视频教程和爬虫学习资料。

Scrapy 框架官??址:http://doc.scrapy.org/en/latest Scrapy 中?维护站
点:http://scrapychs.readthedocs.io/zh_CN/latest/index.html

 

原文:https://www.cnblogs.com/shsxt/p/13581014.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!