scrapy介绍 作者:马育民 • 2020-05-14 09:16 • 阅读:10158 # 介绍 Scrapy 是纯python实现的爬虫框架,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片 基于 Twisted 的异步处理框架 优点: 1. scrapy 是异步的 2. 采取可读性更强的 xpath 代替正则 3. 强大的统计和 log 系统 4. 同时在不同的 url 上爬行 5. 支持 shell 方式,方便独立调试 6. 写 middleware,方便写一些统一的过滤器 7. 通过管道的方式存入数据库 ### 官方文档 https://docs.scrapy.org/en/latest/index.html 中文教程: https://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html # Scrapy架构图 [![](https://www.malaoshi.top/upload/0/0/1EF5WI8T0ZG3.png)](https://www.malaoshi.top/upload/0/0/1EF5WI8T0ZG3.png) - Scrapy Engine(引擎): 负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。 - Scheduler(调度器): 它负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎。 - Downloader(下载器):负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider来处理, - Spider(爬虫):它负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器). - Item Pipeline(管道):它负责处理Spider中获取到的Item,并进行进行后期处理(详细分析、过滤、存储等)的地方。 - Downloader Middlewares(下载中间件):你可以当作是一个可以自定义扩展下载功能的组件。 - Spider Middlewares(Spider中间件):你可以理解为是一个可以自定扩展和操作引擎和Spider中间通信的功能组件(比如进入Spider的Responses;和从Spider出去的Requests) # 总结 在编写爬虫时,最常用到上面的 Spider 、 Item Pipeline、Middlewares - Spider:爬虫,分析页面,抓取内容,如:标题、内容、图片等,但不负责保存、下载等 - Item Pipeline:将 Spider 抓取的内容,如:标题、内容进行保存,图片进行下载等操作 - Middlewares:如代理功能等,对于一般爬虫应用较少 感谢: https://www.runoob.com/w3cnote/scrapy-detail.html 原文出处:http://malaoshi.top/show_1EF5WICFuraB.html