美文网首页
Python学习-scrapy2

Python学习-scrapy2

作者: ericblue | 来源:发表于2018-07-07 11:12 被阅读0次

接触爬虫功能后,发现一个好的爬虫功能可以帮助自动化信息获取,在日常关键信息搜集和解析方面效率提升很明显。为了更系统深入学习,接下来需要一步步研究学习Scrapy框架来实现。

这里使用官方文档介绍下Scrapy框架:

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。

1、创建一个Scrapy项目

下发命令scrapy startproject tutorial后,就在此/Users/tutorial目录下创建了开发文件夹。

创建的tutorial文件夹内容目录

图中目录文件说明:

scrapy.cfg: 项目的配置文件

tutorial/: 该项目的python模块

tutorial/items.py: 项目中的item文件

tutorial/middlewares.py: 项目中的middlewares文件

tutorial/pipelines.py: 项目中的pipelines文件

tutorial/settings.py: 项目的设置文件

tutorial/spiders/: 放置spider代码的目录

这些自动创建的文件是做什么用的可以先从下面各系统功能逻辑架构图来理解。

Scrapy架构图

Scrapy架构图各系统功能组成说明:

Engine:核心引擎,负责控制和调度各个组件,保证数据流转。

Scheduler:负责管理任务、过滤任务、输出任务的调度器,存储、去重任务都在此控制。

Downloader:下载器,负责在网络上下载网页数据,输入待下载URL,输出下载结果。

Spiders:用户自己编写的爬虫脚本,可自定义抓取意图。

Item Pipeline:负责输出结构化数据,可自定义输出位置。

图中MIDDLEWARE分为两部份功能用途:

Downloader middlewares:介于引擎和下载器之间,可以在网页在下载前、后进行逻辑处理。

Spider middlewares:介于引擎和爬虫之间,可以在调用爬虫输入下载结果和输出请求/数据时进行逻辑处理。

Scrapy架构图事物运行说明(图中数字):

1.引擎从自定义爬虫中获取初始化请求(也叫种子URL)。

2.引擎把该请求放入调度器中,同时引擎向调度器获取一个待下载的请求(这两部是异步执行的)。

3.调度器返回给引擎一个待下载的请求。

4.引擎发送请求给下载器,中间会经过一系列下载器中间件。

5.这个请求通过下载器下载完成后,生成一个响应对象,返回给引擎,这中间会再次经过一系列下载器中间件。

6.引擎接收到下载返回的响应对象后,然后发送给爬虫,执行自定义爬虫逻辑,中间会经过一系列爬虫中间件。

7.爬虫执行对应的回调方法,处理这个响应,完成用户逻辑后,会生成结果对象或新的请求对象给引擎,再次经过一系列爬虫中间件。

8.引擎把爬虫返回的结果对象交由结果处理器处理,把新的请求对象通过引擎再交给调度器。

如上执行完后从1开始重复执行,直到调度器中没有新的请求处理。

如上架构学习资料来源此作者地址,感谢分享学习。

相关文章

  • Python学习-scrapy2

    接触爬虫功能后,发现一个好的爬虫功能可以帮助自动化信息获取,在日常关键信息搜集和解析方面效率提升很明显。为了更系统...

  • scrapy安装for win10 python3.6

    环境说明 1、win102、python3.6.0 排错流程 1、pip install scrapy2、报错,无...

  • scrapy2

    1.scrapy架构如下: 爬虫其实就是模拟http发送请求获得响应,如图所示,一个请求由spiders发出,到达...

  • scrapy的使用——创建和启动

    1、pip安装scrapy2、scrapy startproject xxxx创建项目3、scrapy gensp...

  • python scrapy爬虫入门

    在Mac OS 系统进行:1、首先按照scrapy模块:pip install scrapy2、创建项目:scra...

  • python学习笔记目录

    Python学习笔记目录(倒序) Python学习-异常 Python学习-面向对象 Python学习-文件系统 ...

  • python学习笔记

    python学习笔记 今天开始学习python,今天主要学习了python的基础知识,学习的教材是《python编...

  • Python学习之模块

    Python学习目录 在Mac下使用Python3 Python学习之数据类型 Python学习之函数 Pytho...

  • Python学习之面向对象高级编程

    Python学习目录 在Mac下使用Python3 Python学习之数据类型 Python学习之函数 Pytho...

  • Python学习之正则

    Python学习目录 在Mac下使用Python3 Python学习之数据类型 Python学习之函数 Pytho...

网友评论

      本文标题:Python学习-scrapy2

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