2021年07月13日 23:40 __ _ _ _ _

文章配图

从摇篮到坟墓,人生本身就是一场赌博。

——《股票大作手回忆录》

文章配图

在最开始爬虫时我们谈到关于爬虫的两种爬虫方式,一种是静态的使用Requests+bs4,另外一种是利用Scrapy框架进行专业级的网络爬虫。

目录:

  1. 什么是Scrapy框架?

  2. 框架之间结构的运行

  3. Scrapy和Requests之间的区别

1.什么是Scrapy框架?

那么 什么是Scrapy框架
呢?或者说这个框架有什么用呢?首先,大致字面意思是一个类似于框架的东西,一个大致的架子,我们只需要简单的添加一些东西即可。专业一点来说,它就是实现爬虫功能的一个软件结构和功能组件集合,爬虫框架是一个半成品,能够帮助用户实现专业的网络爬虫。

这里简单介绍一下Scrapy框架的5+2结构:

  • Engine(引擎) :控制其它模块之间的数据流;根据条件触发事件(不需要用户修改) 。

  • Downloader(下载器) :根据请求下载网页(不需要用户修改) 。

  • Scheduler(调度器) :对所有爬取请求进行调度管理(不需要用户修改)。

  • Spider(爬虫) :解析Downloader返回的响应;产生爬取项(Scraped item);产生额外的爬取请求(request)(需要用户编写配置) 。

  • Item Pipelines(管道) :以流水线方式处理Spider产生的爬取项,由一组操作顺序组成,类似流水线 ,每个操作是一个Item Pipline类型。可能操作包括:清理,检验和查重爬取项中的HTML数据 ,将数据存储到数据库(需要用户编写配置代码)。

中间件:

  • Spider Middleware :目的是对请求和爬取项的再处理。功能:修改,丢弃,新增 请求或爬取项(用户可以编写配置代码)

  • Downloader Middlewares (下载中间件):是一个可以自定义下载功能的组件。

2.框架之间结构的运行

简述各个框架之间的运行 工作流程

1.首先爬虫将需要发送请求的url(requests)经 引擎交给调度器

2.经Engine交给Scheduler, Scheduler排序处理后再由Engine,DownloaderMiddlewares(有User_Agent, Proxy代理)交给Downloader

3.Downloader向互联网发送请求,并接收下载响应.将响应经 ScrapyEngine,可选交给Spiders

4.Spiders处理 response,提取数据并将数据经Engine交给ItemPipeline 保存。

5.Spider发现新的url经 Engine再交给Scheduler 进行下一个循环。直到无Url请求程序停止结束。

3.Scrapy和Requests之间的区别

Scrapy框架和Requests库 的比较:

  1. 两者都可以进行页面请求和爬取,Python爬虫的两个重要技术路线。

  2. 两者可用性都好,文档丰富,入门简单。

  3. 两者都木有处理js,提交表单,应对验证码等功能(可扩展)。

Requests和Scrapy的详细区别:

Requests Scrapy
页面级爬虫 网站级爬虫
功能库 框架
并发性考虑不足,性能较差 并发性好,性能较高
重点在于页面下载 重点在于爬虫结构
定制灵活 一般定制灵活,深度定制困难
上手十分简单 入门稍难

Python爬虫系列,未完待续…

文章配图

文章配图

为你,千千万万遍.

往期推荐:

Python爬虫系列:正则表达式(2) 2021-07-02
文章配图

Python爬虫系列:正则表达式~End 2021-07-03
文章配图

六月碎碎念 || 半年已逝 2021-07-01
文章配图

一键三连,就差你了
文章配图

预览时标签不可点

阅读




__