Scrapy网络爬虫简介

本文详细介绍了Scrapy爬虫框架的架构和工作流程,包括Scrapy的五大组件及其相互作用,以及如何创建项目、定义Item、编写Spider。通过一个具体的案例展示了如何使用Scrapy抓取当当网上的书籍信息,包括书籍的URL、名称、描述和价格。此外,还提到了如何启动Spider和提取Item,最后介绍了如何将爬取的数据保存为JSON格式。
摘要由CSDN通过智能技术生成

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

1. Scrapy 架构

Scrapy 的整体架构由 Scrapy 引擎(ScrapyEngine)、调度器(Scheduler)、下载器(Downloader)、爬虫(Spiders)和数据项管道(itemPipeline)5 个组件组成。图 1 展示了各个组件的交互关系和系统中的数据流。

Scrapy架构
图 1  Scrapy 架构

Scrapy 的架构由以下 5 个组件和两个中间件构成。

组件/中间件 作用
Scrapy 引擎(ScrapyEngine) 是整个系统的核心,负责控制数据在整个组件中的流动,并在相应动作发生时触发事件。
调度器(Scheduler) 管理 Request 请求的出入栈,去除重复的请求。调度器从 Scrapy 引擎接收请求,并将请求加入请求队列,以便在后期需要的时候提交给 Scrapy 引擎。
下载器(Downloader) 负责获取页面数据,并通过 Scrapy 引擎提供给网络爬虫。
网络爬虫(Spiders) 是 Scrapy 用户编写的用于分析结果并提取数据项或跟进的 URL 的类。每个爬虫负责处理一个(或者一组)特定网站。
数据项管道(ItemPipeline) 负责处理被爬虫提取出来的数据项。典型的处理有清理、验证及持久化。
下载器中间件 是引擎和下载器之间的特定接口,处理下载器传递给引擎的结果。其通过插入自定义代码来扩展下载器的功能。
爬虫中间件 是引擎和爬虫之间的特定接口,用来处理爬虫的输入,并输出数据项。其通过插入自定义代码来扩展爬虫的功能。

Scrapy 中的数据流由 Scrapy 引擎控制,整体的流程如下。

1)Scrapy 引擎打开一个网站,找到处理该网站的爬虫,并询问爬虫第一次要爬取的 URL。

2)Scrapy 引擎从爬虫中获取第一次要爬取的 URL,并以 Request 方式发送给调度器。

3)Scrapy 引擎向调度器请求下一个要爬取的 URL。

4)调度器返回下一个要爬取的 URL 给 Scrapy 引擎,Scrapy 引擎将 URL 通过下载器中间件转发给下载器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值