打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python网络爬虫(七)——创造网络蜘蛛之Scrapy

一、背景

通过前面的学习,我们知道网络蜘蛛的强大;但是我们要怎么去创建网络蜘蛛呢?

就好比建房子一样,一个人很难精通所有的建筑技术并单独建一座高楼大厦;就算是可以,但是完工也遥遥无期。

所以就算是技术大牛、大神也无法凭空创造一个网络蜘蛛;考虑到这种情况,在互联网世界中集合了很多的互联网人创造出一些网络蜘蛛的模板,流传于互联网世界供我们免费使用;我们只要基于这个模板上进行修改和完善,创造出符合我们要求的网络蜘蛛即可。

接下来就跟随我详细了解其中的一个模板Scrapy:

二、Scrapy简介

1.俗称

西瓜皮

2.定义

Python 语言开发的一个快速、高层次的屏幕/Web 抓取框架,用于抓取 Web 站点并从页面中提取结构化数据。

3.核心

使用 Twisted 异步网络请求框架来处理网络通信,不需要额外实现异步框架,而且包含各种中间件接口,能灵活地实现各种需求

4.用途

常用于数据挖掘、监测和自动化测试

5.Scrapy 架构图

(1)Scrapy 引擎(Engine)

Scrapy 框架的核心,用于控制数据流在框架内部的各个组件间流动,在相应动作发生时触发相关事件。

(2)Scrapy 调度器(Scheduler)

请求调度,从引擎接收到 Request,然后添加到队列中, 在后续引擎请求它们时提供给引擎。

(3)Scrapy 下载器(Downloader)

获取到页面数据后提供给引擎,然后提供给爬虫。

(4)下载中间件(Downloader Middleware)

下载器和引擎之间的特定钩子,可以在下载器把 Response 传递给引擎前做一些处理。

(5)爬虫(Spider)

产生 Request,交给下载器下载后返回 Response,解析提取出 Item 或需要另外跟进的 URL 的类。

(6)爬虫中间件(Spider Middleware)

爬虫和引擎之间的特定钩子,可以在 Spider 输 入和输出两个阶段做一些处理。

(7)项目管道(Item Pipeline)

用于处理爬虫产生的 Item,进行一些加工,如数据清洗、验证和持久化。

6.各个模块间的协作流程

引 擎:“爬虫,你想处理哪个网站?”

爬 虫:“引擎,用户要我处理xxx.com。”

引 擎:“爬虫,你把第一个要处理的URL 给我”

爬 虫:“引擎,给你第一个要处理的URL:xxx.com。”

引 擎:“调度器,帮我把这个 Request 请求加到队列里。”

调度器:“引擎,正在帮你处理,稍等。”

引 擎:“调度器,把你处理好的 Request 请求给我。”

调度器:“引擎,给你我处理好的 Request 请求。”

引 擎:“下载器,你按照下载中间件的配置帮我下载这个 Request 请求。”

下载器:“下载完了,给你。”

引 擎:“爬虫,下载好的东西你自己处理一下。”

爬 虫:“引擎,这是我处理完的数据,两个结果,要跟进的 URL,还有获取到的 Item

数据。”

引 擎:“管道,这里有一个 Item,帮忙处理。调度器,这是需要跟进的URL,帮我

处理一下。”

管 道:“好的,现在就处理。”

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python|什么是Scrapy
小白学 Python 爬虫(37):爬虫框架 Scrapy 入门基础(五) Spider Middleware
python抓取数据
Python爬虫从入门到放弃(十七)之 Scrapy框架中Download Middleware用法
Scrapy抓取框架的介绍
Scrapy是爬虫里面最牛逼的框架!学会百分之八十的爬虫随便玩!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服