首页 > 编程语言 > 详细

Python爬虫教程之Scrapy 框架

时间:2020-08-29 09:57:34      阅读:59      评论:0      收藏:0      [点我收藏+]

一、Scrapy 框架

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

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

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

 

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

技术分享图片

  • Scrapy Engine(引擎) : 负责 Spider 、 ItemPipeline 、 Downloader 、 Scheduler
    中间的通讯, 信号、数据传递等。
  • Scheduler(调度器) : 它负责接受 引擎 发送过来的 Request 请求,并按照?定的?式进?整理排列,?队,当引擎需要时,交还给 引擎 。
  • Downloader(下载器) :负责下载 Scrapy Engine(引擎) 发送的所有Requests 请求,并将其获取到的Responses 交还给 ScrapyEngine(引 擎) ,由 引擎 交给 Spider 来处理。
  • Spider(爬?) :它负责处理所有 Responses,从中分析提取数据,获取Item 字段需要的数据,并将需要跟进的 URL 提交给引擎 ,再次进? Scheduler(调度器)。
  • Item Pipeline(管道) :它负责处理 Spider 中获取到的 Item,并进?进?后期处理(详细分析、过滤、存储等)的地?。
  • Downloader Middlewares(下载中间件) :你可以当作是?个可以?定义扩展下载功能的组件。
  • Spider Middlewares(Spider 中间件) :你可以理解为是?个可以?定扩展和操作 引擎 和 Spider 中间 通信的功能组件(?如进? Spider 的Responses;和从 Spider 出去的 Requests)

 

二、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 startproject xxx):新建?个新的爬?项?
  • 明确?标 (编写 items.py):明确你想要抓取的?标 制作爬?
  • (spiders/xxspider.py):制作爬?开始爬取??
  • 存储内容 (pipelines.py):设计管道存储爬取内容

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

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

 

Python爬虫教程之Scrapy 框架

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!