scrapy-3 | Spider开发流程

感觉还差点东西,觉得流程这个东西需要搞出来。
说Spider开发的流程,这里就不得不提一下爬虫的执行流程和Scrapy框架的工作原理。如下:

爬虫的执行流程

1. 下载页面

在爬取内容之前,首先需要根据网页URL,下载网页。

2. 提取页面数据

当网页下载完成,就需要对页面内容和结构进行分析,然后提取我们需要的内容。

3. 提取链接

通常而言,我们需要的数据都是需要爬取多个页面,页面中包含相关页面的链接的情况很常见,然后我们就需要把页面中的某些链接提取出来,然后循环1-2-3。

在爬取网页的时候需要考虑如何去重、网页的搜索策略(深度优先和广度优先)、爬虫边界等

Scrapy框架的工作原理

爬虫可以不使用scrapy框架,但是从头开发一个爬虫程序很麻烦。scrapy框架是比较优秀的爬虫框架,有人造好了轮子,我们就不需要再去造了。
毫无疑问,使用框架可以降低开发成本,提高程序的质量,让我们更专注于爬虫的业务逻辑。

Scrapy框架的组成

百度了一张图片:
e

ENGINE引擎,框架的核心内部组件
ENGINE引擎,框架的核心内部组件
SCHEDULER调度器,负责对SPIDER提交的下载请求进行调度内部组件
DOWNLOADER下载器,负责下载页面内部组件
SPIDER爬虫,页面请求下载,提取页面内数据用户实现
MIDDLEWARE中间件,负责对Request和Response对象进行处理可选组件
ITEM PIPELINE数据通道,负责对爬到的数据进行处理可选组件
对于使用框架的开发者而言,我们需要做的就是’关心‘Spider

Spider开发流程

可以参看第一个例子,很容易得出结论,分四步:
①写一个类继承scrapy.Spider
继承Scrapy框架提供的一个Spider基类
②为Spider取名,即设置name
一个项目可以有多个Spider,每一个爬虫之间需要一个区分标志,即name
③设置起始爬取点,即设置start_ruls
④实现页面解析函数,即parse(self, response)


   Reprint policy


《scrapy-3 | Spider开发流程》 by 梦否 is licensed under a Creative Commons Attribution 4.0 International License
 Previous
scrapy-4 |  Selector提取数据 scrapy-4 | Selector提取数据
数据处理 Python中常用的处理HTTP解析库: BeautifulSoup很流行的HTTP解析库,API简洁易用,但是解析速度比较慢。 lxml由C语言编写的xml解析库,API相对复杂,解析速度快。 Scrapy的Selector
2019-06-06
Next 
scrapy-2 |  第一个爬虫程序 scrapy-2 | 第一个爬虫程序
安装完成了,接下来,我们开始写程序。 #1 查看帮助 scrapy -h scrapy -h #2 有两种命令:其中Project-only必须切到项目文件夹下才能执行,而Global的命令则不需要 Global
2019-06-05
  TOC