10 scrapy框架解读--深入理解爬虫原理

原创 2016年06月01日 15:36:12

这里写图片描述

scrapy框架结构图:

这里写图片描述

组成部分介绍:

  • Scrapy Engine:
    负责组件之间数据的流转,当某个动作发生时触发事件

  • Scheduler:
    接收requests,并把他们入队,以便后续的调度

  • Downloader:
    负责抓取网页,并传送给引擎,之后抓取结果将传给spider

  • Spiders:
    用户编写的可定制化的部分,负责解析response,产生items和URL

  • Item Pipeline:
    负责处理item,典型的用途:清洗、验证、持久化

  • Downloader middlewares:
    位于引擎和下载器之间的一个钩子,处理传送到下载器的requests和传送到引擎的response(若需要在Requests到达Downloader之前或者是responses到达spiders之前做一些预处理,可以使用该中间件来完成)

  • Spider middlewares:
    位于引擎和抓取器之间的一个钩子,处理抓取器的输入和输出
    (在spiders产生的Items到达Item Pipeline之前做一些预处理或response到达spider之前做一些处理)

Scrapy中的数据流:

  • Scrapy中的数据流由执行引擎控制,其过程如下:
    1. 引擎打开一个网站(open a domain),找到处理该网站的spider,并向该spider请求第一个要爬取的url(s);
    2. 引擎从spider中获取到第一个要爬取的url并在调度器(scheduler)以requests调度;
    3. 引擎向调度器请求下一个要爬取的url;
    4. 调度器返回下一个要爬取的url给引擎,引擎将url通过下载器中间件(请求requests方向)转发给下载器(Downloader);
    5. 一旦页面下载完毕,下载器生成一个该页面的responses,并将其通过下载器中间件(返回responses方向)发送给引擎;
    6. 引擎从下载器中接收到responses并通过spider中间件(输入方向)发送给spider处理;
    7. spider处理responses并返回爬取到的Item及(跟进的)新的resquests给引擎
    8. 引擎将(spider返回的)爬取到的Item给Item Pipeline,将(spider返回的)requests给调度器;
    9. (从第二部)重复直到(调度器中没有更多的request)引擎关闭该网站

中间件的编写:

  • down loader middle ware – 查看文档151页

  • spider middle wares – 查看文档162页

版权声明:本文为博主原创文章,未经博主允许不得转载。

Scrapy爬虫(三):scrapy架构及原理

Scrapy爬虫(三):Scrapy原理Scrapy爬虫三Scrapy原理 scrapy爬虫尝鲜 scrapy data flow流程图 scrapy项目结构scrapy爬虫尝鲜scrapy现在已经完...

Scrapy:Python的爬虫框架----原理介绍

Scrapy:Python的爬虫框架 网络爬虫,是在网上进行数据抓取的程序,使用它能够抓取特定网页的HTML数据。虽然我们利用一些库开发一个爬虫程序,但是使用框架可以大大提高效率,缩短开发时间...

scrapy-redis(五):scrapy中信号工作的原理

scrapy有内置的信号,比如spider_opened,spider_closed,item_dropped等等。我们可以利用这些信号来做一些初始化的工作和数据收集统计。比如spider_opene...

Scrapy研究探索(三)——Scrapy核心架构与代码运行分析

学习曲线总是这样,简单例子“浅尝”,在从理论+实践慢慢攻破。理论永远是基础,切记“勿在浮沙筑高台”。 一. 核心架构 关于核心架构,在官方文档中阐述的非常清晰,地址:http://doc.scra...

Scrapy爬虫架构图解

这就是整个Scrapy的架构图了; Scrapy Engine: 这是引擎,负责Spiders、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等等!(像不...
  • Gooooa
  • Gooooa
  • 2017年06月22日 16:16
  • 910

基于scrapy框架爬虫学习小结

在之前完全没有接触过爬虫的我,甚至都不知道爬虫是何物,然而在数据挖掘课程第二次大作业中却要我们小组直接用scrapy框架做一个爬取朋友圈的爬虫,一接到作业的我们马上就懵逼了,别说是scrapy了,我们...

Python爬虫框架之Scrapy详解

scrapy爬虫安装: 首先,安装Python,pip,然后使用pip安装lxml和scrapy,这样就可以新建scrapy项目了。 然后,在命令行使用scrapy startproject xxx命...

基于scrapy框架爬虫学习小结

在之前完全没有接触过爬虫的我,甚至都不知道爬虫是何物,然而在数据挖掘课程第二次大作业中却要我们小组直接用scrapy框架做一个爬取朋友圈的爬虫,一接到作业的我们马上就懵逼了,别说是scrapy了,我们...

Python爬虫从入门到放弃(十二)之 Scrapy框架的架构和原理

这一篇文章主要是为了对scrapy框架的工作流程以及各个组件功能的介绍 Scrapy目前已经可以很好的在python3上运行 Scrapy使用了Twisted作为框架,Twisted有些特殊的地方...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:10 scrapy框架解读--深入理解爬虫原理
举报原因:
原因补充:

(最多只允许输入30个字)