scrapy框架结构,python的scrapy框架

  scrapy框架结构,python的scrapy框架

  Scrapy框架Scrapy是一个用纯Python编写的抓取网站数据,提取结构化数据的应用框架,应用广泛框架的威力,用户只需要定制开发几个模块就可以轻松实现一个爬虫,对于抓取网页内容和各种图片非常方便Scrapy使用twisted [twstd](其主要对手是Tornado)异步网络框架来处理网络通信,可以加快我们的下载速度,并且它不需要自己实现异步框架它还包含各种中间件接口,可以灵活地满足各种需求Scrapy架构图(绿线是数据流方向):

  Scrapy Engine:负责Spider、ItemPipeline、Downloader和Scheduler之间的通信、信号和数据传输调度器:负责接收引擎发来的请求,按照一定的方式安排,加入团队,在引擎需要的时候返回给引擎下载器:负责下载Scrapy引擎发送的所有请求,并将获取的响应返回给Scrapy引擎,交给Spider处理蜘蛛(crawler):负责处理所有的响应,从中分析提取数据,获取项目字段所需的数据,向引擎提交待跟进的URL,再次进入调度器(Scheduler),项目管道(Pipeline):负责处理在蜘蛛中获取的项目其中后处理(详细分析、过滤、存储等)被执行下载器中间件:你可以把它想象成一个可以定制和扩展下载功能的组件蜘蛛中间件(Spider Middleware):你可以把它理解为一个功能组件,可以定制引擎的扩展和操作,与蜘蛛进行通信(比如输入蜘蛛的响应;并请求)Scrapy蜘蛛)Scrapy的操作流程代码编写完成,程序开始运行

  发动机:嗨!蜘蛛,你要和哪个网站打交道?蜘蛛:老板要我去对付xxxx.com引擎:请给我第一个要处理的URL蜘蛛:给你第一个URL是xxxxx

  xx.com .发动机:嗨!调度员,我有个请求。请帮我整理一下。调度:好的,正在处理。请稍等。发动机:嗨!调度员,给我你处理过的请求。调度:给你,这是我处理的请求引擎:嗨!下载器请根据老板下载中间件的设置帮我下载这个请求请求下载器:好的!给您这是下载的东西。(如果失败:对不起,本次请求下载失败。然后,引擎告诉调度程序请求下载失败。请记录下来,我们稍后会下载。)发动机:嗨!蜘蛛,这是下载的东西,已经按照老板的下载中间件处理过了。请自行处理(注意!这里,默认情况下,响应由def parse()函数处理。蜘蛛:(针对数据处理后需要跟进的网址),嗨!引擎,我这里有两个结果,这是我需要跟进的URL,这是我得到的项目数据。发动机:嗨!我有一个项目正在筹备中。请帮我处理一下!调度员!这是需要跟进的网址。请为我处理它。然后从第四步开始循环,直到获得老板需要的所有信息。流水线调度器:好,现在就做!立正!只有当调度程序中没有请求时,整个程序才会停止。(也就是Scrapy会再次下载下载失败的网址。)

  制作一个Scrapy爬虫有4个步骤:创建一个新项目(scrapy startproject xxx):创建一个新的爬虫项目。明确目标(write items.py):确定要爬的目标。制作爬虫(spiders/Xxspider.py):制作爬虫并开始抓取网页存储内容(pipelines.py):设计管道存储抓取的内容。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: