论一只爬虫的自我修养11:Scrapy框架之初窥门径 – 零基础入门学习Python063

论一只爬虫的自我修养11:Scrapy框架之初窥门径

 

让编程改变世界

Change the world by program


 

Scrapy框架之初窥门径

 

上节课我们好不容易装好了小爬爬 —— Scrapy,那今天我们就来教大家怎么用好它。有些童鞋可能会很疑惑,既然我们懂得了Python编写爬虫的技巧,那要这个所谓的爬虫框架又有什么用?其实懂得用Python写爬虫代码,好比你懂武功会打架,但行军打战你不行,毕竟敌人是千军万马,纵使你再强,也只能是百人敌,要成为万人敌,你要学的就是排兵布阵,运筹帷幄于千里之外。所以,Scrapy就是Python爬虫的孙子兵法。

 

使用Scrapy抓取一个网站一共需要四个步骤:

1. 创建一个Scrapy项目;

2. 定义Item容器;

3. 编写爬虫;

4. 存储内容。

 

学习怎么使用Scrapy之前,我们需要先来了解一下Scrapy的架构以及组件之间的交互。下图展现的是Scrapy的架构,包括组件及在系统中发生的数据流(图中绿色箭头)。

 

无标题1

 

下面对每个组件都做了简单介绍:

 

Scrapy Engine

Scrapy引擎是爬虫工作的核心,负责控制数据流在系统中所有组件中流动,并在相应动作发生时触发事件。

 

调度器(Scheduler)

调度器从引擎接受request并将他们入队,以便之后引擎请求他们时提供给引擎。

 

下载器(Downloader)

下载器负责获取页面数据并提供给引擎,而后提供给spider。

 

Spiders

Spider是Scrapy用户编写用于分析由下载器返回的response,并提取出item和额外跟进的URL的类。 Item Pipeline Item Pipeline负责处理被spider提取出来的item。典型的处理有清理、验证及持久化(例如存取到数据库中)。

 

接下来是两个中间件,它们用于提供一个简便的机制,通过插入自定义代码来扩展Scrapy的功能。

 

下载器中间件(Downloader middlewares)

下载器中间件是在引擎及下载器之间的特定钩子(specific hook),处理Downloader传递给引擎的response。

 

Spider中间件(Spider middlewares)

Spider中间件是在引擎及Spider之间的特定钩子(specific hook),处理spider的输入(就是接收来自下载器的response)和输出(就是发送items给item pipeline以及发送requests给调度器)。

 

好吧,我知道大家现在肯定是听得有点神魂颠倒了。小甲鱼一步步带着你做一遍,你就知道咋回事了。

 

分页阅读: 1 2 3 4 5 6 7 下一页
为您推荐

报歉!评论已关闭.