Scrapy实例教程
Scrapy是一套根据Twisted异步处理架构,纯Python网络爬虫架构。
用户只需开发和设计多个简单的控制模块,就可以轻松完成一个网络爬虫。可用于捕捉网页的具体内容及其图片,应用简单方便。
Scrapy架构主要是由于ScrapyEngine(模块),Scheduler(调度器),Downloader(下载工具),Spider(网络爬虫),ItemPipeline此外,还有两个常见的消息中间件:DownloaderMiddlewares(免费下载消息中间件)和SpiderMiddlewares(Spider消息中间件)。
1.Scrapy架构架构图
ScrapyEngine(模块):
承担Spider,ItemPipeline,Downloader,Scheduler中间通信、数据信号、数据传输等。
Scheduler(调度):
它承担接受模块推送的模块Request要求,并按一定的方法进行梳理排序,入团,当模块需要时,交给模块。
Downloader(下载工具):
免费下载ScrapyEngine(模块)全部上传Requests并掌握要求,Responses交还给ScrapyEngine(模块),由模块交付Spider去处理。
Spider(网络爬虫):
它承担所有的解决方案Responses,从中分析提取数据,获取数据Item字段所需的信息,以及必须跟踪的信息URL提交给模块,再次进入Scheduler(调度器)。
ItemPipeline(管路):
它承担解决Spider中掌握到的Item,然后进行后期制作(深入分析、过度考虑、储存等)。
DownloaderMiddlewares(免费下载消息中间件):
您可以将其视为可以自定义扩展下载功能的部件。
SpiderMiddlewares(Spider消息中间件):
你可以看作是一个自设扩展和使用模块和Spider中间通信功能的部件。
2.使用说明书
Scrapy控制模块和使用说明书如下:
大家应用Scrapy架构获取数据,一般只需编写两类编码:网络爬虫(Spider控制模块)和管道(ItemPipeline控制模块)。网络爬虫控制模块承担必须爬行的爬行Url在连接和网页分析中,管道控制模块负责将数据存储到数据库系统或文档中。
3.应用案例
我们可以快速应用Scrapy建筑快速创建项目,然后简单地写一个网络爬虫文档,获取数据。例如,爬百度主页文章的标题:
importscrapy
#爬虫类
classBaiduSpider(scrapy.Spider):
#网络爬虫名称
name='baidu'
#爬取页面
start_urls=['https://baidu.com']
#网页解析函数
defparse(self,response):
title=response.css('title::text').extract_first()
print("百度主页文章标题:"+title)
运行结果:
百度主页文章标题:百度,你会知道的
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/291926.html