Scrapy爬虫框架介绍

怼烎@ 2023-07-24 05:49 166阅读 0赞

一、爬虫框架简介

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

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

二、Scrapy爬虫框架结构

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xZXzYyNA_size_16_color_FFFFFF_t_70

五个模块:

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进行解析,提取所需的数据,并发送新的请求。

三、需要用户编写的模块

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xZXzYyNA_size_16_color_FFFFFF_t_70 1

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

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

四、requests库和Scrapy爬虫的比较

相同点:

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

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

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

不同点:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xZXzYyNA_size_16_color_FFFFFF_t_70 2

五、技术路线选取

20200409205238408.png

六、Scrapy爬虫的常用命令

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xZXzYyNA_size_16_color_FFFFFF_t_70 3

2.常用命令介绍

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xZXzYyNA_size_16_color_FFFFFF_t_70 4

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

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xZXzYyNA_size_16_color_FFFFFF_t_70 5

发表评论

表情:
评论列表 (有 0 条评论,166人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Scrapy爬虫框架介绍

    一、爬虫框架简介 爬虫框架是实现爬虫功能的一个软件结构和功能组件集合。 爬虫框架是一个半成品,能够帮助用户实现专业网络爬虫。 二、Scrapy爬虫框架结构 ![

    相关 Scrapy框架介绍

    1.什么是网络爬虫 网络爬虫是根据特定的规则在网络上自动爬取所需信息的脚本或程序,分为通用爬虫和聚焦爬虫,传统的通用网络爬虫主要为门户站点搜索引擎和大型Web服务提供商采

    相关 Scrapy - 爬虫框架

    Scrapy,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和 [自

    相关 Scrapy爬虫框架介绍

    Scrapy简介 > Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。 > 其最