(二)爬虫框架(1)——scrapy简介

scrapy是为了爬取网站数据、提取结构性数据而编写的应用框架。
用户只需要开发几个模块就可以实现一个定制化爬虫,抓取内容和图片。
scrapy内部使用了Twisted异步网络框架来处理网络通讯,可以加快下载速度,并且包含了各种中间件接口。

Scrapy怎么完成爬虫工作:

  先来一张官方图片

《(二)爬虫框架(1)——scrapy简介》 scrapy官方图

Engine引擎:负责Spiders、Scheduler、Downloader、Item Pipelines中间的通讯,传递数据。

Scheduler调度器:负责接收Engine发送的所有Request请求,并将其按照一定的方式进行整理排列、入队,当Engine需要时,送还给Engine。

Downloader下载器:负责下载Engine发送的所有Request请求,并且将其获取到的Response传递给Engine。

Spider爬虫:负责处理Downloader获取到的Response,并从中提取数据,发送给Engine,并且将需要跟进的URL再次发送给Engine,由Engine转发给Scheduler。

Item Piplines管道:负责处理Spider中提取的数据,对数据进行分析、过滤、存储等操作。

Middleware中间件:分为两个部分,一个是Downloader Middleware,另一个是Spider Middleware。

    
Downloader Middleware下载器中间件:用户自定义扩展下载功能。

    
Spider Middleware爬虫中间件:用户自定义扩展爬虫功能,例如操作request和response。

Scrapy运行流程:
    1.Spider把需要爬取的页面URL给Engine;
    2.Engine把URL放入Scheduler中,给Scheduler处理;
    3.Scheduler把处理好的第一条request传入到Engine中;
    4.Engine把request传入Downloader中,让它发送请求到目标网站;
    5.Downloader把从服务器上接收到的response传入Engine中;
    6.Engine把接收到的response传入Spider中,供其提取数据;
    7.Spider把提取到的数据和下一条待爬取的URL传入Engine中;
    8.Engine把接收到的数据传递给Item Piplines、把下一条待爬取的URL传入Scheduler中,给Scheduler处理;
这个流程一直循环运行,直到Scheduler中没有任何一条待爬取的URL,整个程序会停止。

    原文作者:爱折腾的胖子
    原文地址: https://www.jianshu.com/p/f8822ec3c7cd
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞