Scrapy的爬取原理

2018-02-17  本文已影响206人  dy2903

Scrapy的爬取原理

为什么要用Scrapy框架呢?因为框架可以帮我们把一些常用的功能集成了,我们只需要调用即可。比如下载模块就不需要再写了,只需要提供要下载的链接地址,专注于提取数据就好。

而且框架使用了异步的模式,也就是说,我们发出了HTTP请求以后,不需要等待Web服务器返回成功,而是继续执行其他的操作 ,不会浪费这段时间,效率自然就上去了。使用这种框架,我们就不需要自己去实现它了。

基本原理

下面来说一下基本原理。Scrapy的架构中主要有如下几种角色:

简单的讲,

基本流程

image.png

因为引擎是总指挥,所以它会问Spider要处理的网站的URL、以及返回的responses是交给那个函数进行处理,然后引擎会让调度器将请求放入消息队列中。

然后引擎每次都从调度器里面取一个请求发给下载器,由下载器执行具体的下载操作。

如果下载成功,则直接返回引擎
如果下载失败,引擎还会告诉调度器待会再下一次。

下载得到的responses默认交给parse函数进行处理,我们还可以定义另外parse函数进行具体的处理操作。

Spider提取Item,然后告诉引擎下一个需要处理的URL是什么。

同时PipeLine也会将Items存放到数据库中。

上一篇 下一篇

猜你喜欢

热点阅读