美文网首页
scrapy框架学习、快速抓取数据

scrapy框架学习、快速抓取数据

作者: 奔向算法的喵 | 来源:发表于2019-04-16 12:03 被阅读0次

最近小小的学习了一下scrapy来抓取数据,在这里进行一个简单的总结。

一、scrapy介绍和原理

1.1、什么是scrapy框架?

scrapy就是一个为了爬取网站数据,提取结构性数据而编写的应用框架。它采用到了Twisted异步网络网络框架,能够加速下载的速度。我们使用少量的代码就能进行快的数据抓取了。说道这里,可以去回顾一下异步、同步、阻塞、非阻塞的区别。

1.2、scrapy的原理
Scrapy框架

在scrapy框架图汇中,主要是由4个部分组成:Scheduler、Downloader、Spiders和ItemPipeline构成。其中Scrapy Engine就是一个核心的作用。我们分别看看每个部分的作用是什么?

  • Scheduler:它就是一个队列,里面存放的就是requests对象。requests对象从Scheduler出来之后,会经过Scrapy Engine传到下载中间件,然后下载中间件会传递给Downloader。
  • Downloader:接收到了requests对象的下载器会去发送请求,获取相应response,然后将这个response经过Scrapy Engine、下载中间件、Scrapy Engine和Spider中间件传到Spiders处。
  • Spiders:主要的作用就是提取url和数据。Spiders提取到的url会处理成requests,经过爬虫中间件和Engine传递给Scheduler。Spiders提取的数据就交给了Item Pipeline,
  • Item Pipeline:它负责处理Spider中获取到的Item,并进行进行后期处理(详细分析、过滤、存储等)的地方。

这里的Scrapy Engine的核心起到了一个解耦的作用。
下面我们看看,那些模块需要我们去实现:

item 作用 实现与否
Scrapy Engine 负责数据和信号在不同模块间的传递 scrapy已经实现
Scheduler 本质是一个队列,存放requests对象 scrapy已经实现
Downloader 接收Engine发过来的requests,并返回响应给Engine scrapy已经实现
Spider 处理Engine发过来的response,进行url和数据的提取 需要自己实现
Item Pipeline 处理Engine传过来的数据 需要自己实现
下载中间件 可以自定义的下载扩展,比如设置代理 一般不用自己写
爬虫中间件 可以自定义requests请求和进行response过滤 一般不用自己写

到这里我们就知道了,一般需要我们手写就是Spider和Item Pipeline了。

相关文章

网友评论

      本文标题:scrapy框架学习、快速抓取数据

      本文链接:https://www.haomeiwen.com/subject/ehovwqtx.html