Scrapy爬虫框架介绍

本文深入解析了Scrapy爬虫框架的结构与工作流程,包括五个核心模块:spiders、scheduler、downloader、engine和itempipelines,以及两个中间件。详细介绍了各模块的功能与交互,帮助读者理解Scrapy如何高效地爬取和处理网络数据。
摘要由CSDN通过智能技术生成

一、爬虫框架简介

爬虫框架是实现爬虫功能的一个软件结构和功能组件集合。

爬虫框架是一个半成品,能够帮助用户实现专业网络爬虫。

二、Scrapy爬虫框架结构

五个模块:

      spiders(爬虫):解析downloader产生的相应(response),产生爬取项Item,产生额外的爬取请求(requests)

      scheduler(调度器):负责对爬取请求进行调度管理(可能同时有多个爬虫请求)

      downloader(下载器):根据请求下载网页,链接互联网,爬取相关的网页,返回爬取的内容

      engine(引擎):控制所有模块之间的数据流,根据条件触发事件,负责其他四个模块之间的消息与数据的传送

      item pipelines(管道):流水线方式处理spiders产生的爬取项;由一组操作顺序组成,每个操作是一个Item Pipelines类型

                                              可能操作包括:清理、检验和查重爬取项中的HTML数据、将数据存储到数据库

两个中间件(Middlewares):(用户可以编写配置代码)

      Spider Middleware:enging和spiders之间,对请求和爬取项的再处理

                                       修改、丢弃、新增请求或爬取项

      Downloader Middleware:enging和downloader之间,实施engine、scheduler和downloader之间进行用户可配置的控制

                                       修改、丢弃、新增请求或响应

首先,spiders发送的requests通过engine发送给scheduler(1—2—3):

      spiders发送requests,engine获得了spiders发送的requests消息(爬取用户的请求,可以理解为一个URL);

      engine将requests请求转发给scheduler

其次(4—5—6):

      scheduler通过engine将requests发送给downloader,downloader返回response消息,通过engine发送给spiders

最后,spiders通过engine将爬取的内容送到Item Pipelines以及scheduler(7—8):

      spiders将解析的内容送给engine,engine将两部分分别送给Item Pipelines和scheduler

      Item为要爬取的内容;送给scheduler的requests为需要继续跟进的内容

总得来说,整个执行过程从向engine发送第一个请求开始,到获得所有链接的内容,并将内容处理后放到Item Pipelines为止。

用户通过spiders请求要爬取的网页;scheduler对请求进行调度;downloader通过互联网爬取所需要的网页,并返回给spiders;spiders进行解析,提取所需的数据,并发送新的请求。

三、需要用户编写的模块

由于在这个框架下,用户编写的不是完整的所有代码,而仅仅是对spiders和item Pipelines 已有的代码框架进行编写,所以将这种代码编写方式叫做配置。相当于用户在Scrapy框架下进行简单的配置就可以实现相应的爬虫功能。

用户需要关心的就是爬取的内容,即spiders的编写;获得Item Pipelines后的数据处理。

四、requests库和Scrapy爬虫的比较

相同点:

两者都可以进行页面请求和爬取,python爬虫的两个重要技术路线。

两者可用性都好,文档丰富,入门简单。

两者都没有处理js、提交表单、应对验证码等功能(可扩展)。

不同点:

五、技术路线选取

六、Scrapy爬虫的常用命令

1.Scrapy是为持续运行设计的专业爬虫框架,提供操作的命令行。

2.常用命令介绍

常用的三个命令:startproject、genspider和crawl

七、Scrapy为什么使用命令行,而不用GUI

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值