爬虫抓取网页数据(Python开源爬虫框架:Scrapy架构分析()架构)
优采云 发布时间: 2022-04-13 03:29爬虫抓取网页数据(Python开源爬虫框架:Scrapy架构分析()架构)
Python开源爬虫框架:Scrapy架构分析
蟒蛇爬虫
所谓网络爬虫,就是在互联网上到处或有针对性地爬取数据的程序。当然,这种说法不够专业。更专业的描述是爬取特定的网站网页。
HTML 数据。但是,由于一个网站的页面很多,而且。
调度器
调度器
中间件
互联网
物品
管道
蜘蛛
下载器
刮擦
引擎
下载器中间件
蜘蛛中间件
绿线是数据流向,首先从初始
Spider分析的结果有两种:一种是
将被发送回调度程序;另一个是需要保存的数据,发送到
URL启动,Scheduler会交给Downloader下载,下载完成后交给Spider输入
下一步爬取的链接,比如前面分析的下一页的链接,这些东西
ItemPipeline,即对数据进行后处理(详细
分析、过滤、存储等)。此外,可以在数据流通道中安装各种中间件,进行必要的处理。
二、组件
1、ScrapyEngine
Scrapy引擎用于控制整个系统的数据处理流程,触发事务处理。有关详细信息,请参阅下面的数据处理流程。
2、调度器
Scrapy 引擎在发出请求后返回它们。
调度程序接受来自 Scrapy 引擎的请求并将它们排队
3、下载器
(下载器)
下载器的主要职责是抓取网页并将网页内容返回给蜘蛛
(蜘蛛)。
4、蜘蛛
爬虫由 Scrapy 用户定义,用于解析网页并爬取指定名称。也就是说,它是用来定义具体的网站获取和解析规则的。
URL返回的内容类,每个蜘蛛可以处理一个域名或一组域
蜘蛛的整个爬取过程(周期)如下:
start_requests() 端
首先获取第一个URL的初始请求,并在请求返回时调用回调函数。第一个请求是通过调用该方法。该方法默认从start_urls中的Url生成请求,并解析调用回调函数。
在回调函数中,您可以解析网页响应并返回项目对象和请求对象或两者的迭代。这些请求还将收录一个回调,然后将由 Scrapy 下载,然后使用指定的回调进行处理。
在回调函数中,您解析 网站 的内容,使用 Xpath 选择器(但您也可以使用 BeautySoup、Ixml 或其他
您喜欢的任何程序),并生成解析的数据项。
最后,从蜘蛛返回的项目通常最终在项目管道中。
5、ItemPipeline
项目管道的主要职责是处理蜘蛛从网页中提取的项目,他的主要任务是对数据进行澄清、验证和存储。当页面被蜘蛛解析时,它被发送到项目管道,并按几个特定的顺序处理数据。每个项目管道的组件都是具有一种简单方法的 Python 类。他们获取项目并执行他们的方法,他们还需要决定是否需要继续进行项目管道中的下一步或将其丢弃。
项目管道通常执行以下过程:
清理 HTML 数据
验证解析的数据(检查项目是否收录必要的字段)
检查重复数据(如果重复则删除)
将解析后的数据存入数据库