关键字: Scrapy
CSS选择器
爬虫
前言
今天我们编写一个用 Scrapy
框架来爬取百度股票的代码,之前写过一篇爬取百度股票的文章,代码的逻辑和这篇文章的逻辑是一样的,用到的解析器不同罢了。
Scrapy爬虫框架
Scrapy 爬虫框架是由 7+2
的结构构成: 引擎(Scrapy Engine) 、调度器(Schedule) 、下载器(Downloader) 、爬虫(Spider) 、项目通道(Item Pipeline) 和 下载中间器(Downloader Middlewares) 、爬虫中间器(Spider Middlewares) 。
Scrapy 中的数据流(Data flow)由执行引擎控制,如下所示:
- 引擎 从 Spider 中获得需要爬取初始的
Requests
。 - 引擎 在 调度器 中调度
Requests
并询问下一个需要爬取的Requests
。 - 调度器 向 引擎 返回下一个要爬取的
Requests
。 - 引擎 通过 下载中间器 把这个
Requests
传递给 下载器 。 - 一旦页面下载完毕,下载器 生成一个
Response
(包含那个页面),并通过 下载中间件 把它传递给引擎。 - 引擎 从 下载器 中接收
Response
,通过 爬虫中间件 的处理传递给 Spider 。 - Spider 处理完
Response
后,通过 爬虫中间件 向 引擎 返回生成的items
和新的Requests
(如果有的话)。 - 引擎 把
items
传递给 Item Pipelines ,并把处理过的Requests
传递给 调度器 ,询问新的requests
。 - 程序从步骤 1 开始重复,直到 调度器 中不再有更多的请求为止。
更多 Scrapy 信息参考官方文档:
创建Scrapy项目
在电脑配置好 Scrapy 后,
在 D盘 创建名为 pycodes
的文件夹。