这是我参与[第四届青训营]笔记创作活动的第4天
因为我们训练营五个项目中包含爬虫的项目,这个项目是我之前没有接触过的,也是相对于其他项目容易上手的项目,所以进行了相关的学习,以及实践。主要是运用了scrapy框架。
爬虫框架——scrapy框架
介绍
Scrapy是一个应用程序框架,用于对网站进行爬行和提取结构化数据,这些结构化数据可用于各种有用的应用程序,如数据挖掘、信息处理或历史存档。
流程图
Scrapy框架的主要功能:
-
调度器(Scheduler):调度器,一个URL的优先队列,由它来决定下一个要抓取的网址是什么,同时去除重复的网址。
-
下载器(Downloader):用于高速地下载网络上的资源,是基于twisted 这个高效的异步模型上的建立的。
-
爬虫(Spider):spider使用Xpath 用于从特定的网页中提取自己需要的信息,可以根据自己的需求使用正则表达替换Xpath。
-
实体管道(Item Pipeline):实体管道,用于接收网络爬虫传过来的数据,以便做进一步处理。
-
Scrapy引擎(Scrapy Engine):Scrapy 引擎是整个框架的核心,用来处理整个系统的数据流,触发各种事件。它用来控制调试器、下载器、爬虫。实际上,引擎相当于计算机的CPU,它控制着整个流程。
-
中间件:整个 Scrapy 框架有很多中间件,如下载器中间件、网络爬虫中间件等,这些中间件相当于过滤器,夹在不同部分之间截获数据流,并进行特殊的加工处理。
细化流程
- 爬虫中起始的 URL 构造成 Requests 对象 ⇒ 爬虫中间件 ⇒ 引擎 ⇒ 调度器;
- 调度器把 Requests ⇒ 引擎 ⇒ 下载中间件 ⇒ 下载器;
- 下载器发送请求,获取 Responses 响应 ⇒ 下载中间件 ⇒ 引擎 ⇒ 爬虫中间件 ⇒ 爬虫;
- 爬虫提取 URL 地址,组装成 Requests 对象 ⇒ 爬虫中间件 ⇒ 引擎 ⇒ 调度器,重复步骤2;
- 爬虫提取数据 ⇒ 引擎 ⇒ 管道处理和保存数据
实例应用爬取豆瓣网电影
创建项目的命令
在终端运行
通过scrapy startproject doubanMovie 创建项目
生成爬虫 scrapy genspider douban douban.com
通过scrapy crawl douban运行
具体的目录展示
- doubanspider.py 爬虫文件
- items.py
- piplelines.py 保存文件
- settings.py 配置文件
结果展示
总结
scrapy框架还有许多其他的功能以及中间键还没有用上还需要进一步的学习。目前只是实现了简单的案例,如果能根据具体的需求进行实现就更好了。