scrapy介绍

介绍

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架构图

  • 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


原文出处:/show_1EF5WICFuraB.html