scrapy爬虫框架

scrapy是一个高级的python爬虫框架,是一个为了爬取网站数据,提取结构性数据而编写的应用框架。scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。

一、整体架构

旧版本

新版本

Scrapy Engine:引擎,负责Spiders、ItemPipeline、Downloader、Scheduler中间的通讯、信号、数据传递等

Scheduler:调度器,负责接受引擎发送过来的requests请求(采用队列的方式接收),并按照一定的方式进行整理排列、入队

Downloader:下载器,负责下载ScrapyEngine引擎发送过来的所有requests请求,并将其获取到的Responses交给ScrapyEngine引擎,由引擎交给Spiders处理

Spiders:爬虫,负责处理所有的Responses,从中提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler调度

Item Pipeline:项目管道,负责处理Spiders中获取到的Item,并进行处理

Downloader Middlewares:下载中间件,自定义扩展下载功能的组件

Spider Middlewares:爬虫中间件,自定义扩展引擎和spider中间通信的功能组件

Scheduler Middlewares:调度中间件,自定义扩展引擎和调度之间的请求和响应

scrapy运行流程大致如下:

1、引擎从调度器中取出一个链接(URL)用于接下来的抓取

2、引擎把URL封装成一个请求(Request)传给下载器

3、下载器把资源下载下来,并封装应答包(Response)

4、爬虫解析Response

5、解析出Item,则交给Item Pipeline进行下一步处理

6、解析出URL,则把URL交给调度器等待抓取

二、配置文件说明

scrapy.cfg 项目的配置信息,主要为scrapy命令行工具提供一个基础的配置信息

items.py 设置数据存储模型,用于结构化数据

pipelines 数据处理行为

settings.py 配置文件(爬虫相关的配置信息)

spiders 爬虫目录

三、scrapy常用命令

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180719G1KIXK00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券