Scrapy实例教程
2022/10/28 6:24:52
本文主要是介绍Scrapy实例教程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
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)
运行结果:
百度主页文章标题:百度,你会知道的
这篇关于Scrapy实例教程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升