一、Scrapy介绍
Scrapy是一个为了爬取网站数据,用于快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。
二、基本架构
Engine 引擎 整个系统的核心 数据流处理、触发事务
item 项目 定义了爬取结果的数据结构,爬取的数据会被赋值为该item对象
Schedule 调度器 接受引擎发过来的请求加入队列中,在引擎再次请求的时候
Downloader 下载内容 返回给spider
Spiders 蜘蛛 其内部定义了爬取的逻辑和网页解析规则
Item Pipeline 项目管道
Downlaod Middle 下载中间件
Spider Middle 蜘蛛中间件
三、运行过程
1、引擎: 怎么样,爬虫老弟,搞起来啊!
2、Spider: 好啊,老哥,来来来,开始吧。今天就爬xxx网站怎么样
3、引擎: 没问题,入口URL发过来!
4、Spider: 呐,入口URL是https://ww.xxx.com。
5、引擎: 调度器老弟,我这有request请求你帮我排序入队一下吧。
6、调度器: 引擎老哥,这是我处理好的request。
7、引擎: 下载器老弟,你按照下载中间件的设置帮我下载一下这个request请求。
8、下载器: 可以了,这是下载好的东西。(如果失败:sorry,这个request下载失败了。然后引擎告诉调度器,这个request下载失败了,你记录一下,我们待会儿再下载)
9、引擎: 爬虫老弟,这是下载好的东西,下载器已经按照下载中间件处理过了,你自己处理一下吧。
10、Spider: 引擎老哥,我的数据处理完毕了,这里有两个结果,这个是我需要跟进的URL,还有这个是我获取到的Item数据。
11、引擎: 管道老弟,我这儿有个item你帮我处理一下!
12、引擎: 调度器老弟,这是需要跟进URL你帮我处理下。(然后从第四步开始循环,直到获取完需要全部信息)
四、具体步骤
- 安装
pip install scrapy
- 构建第一个项目
scrapy startproject {项目名称}
- 目录
- spider 逻辑
scrapy genspider jincwei {具体网址}
5. item 填充
就是这么简单。
6. 结果