爬虫主流框架分享--Scrapy【第四期】

这已经是Scrapy的第四期教程啦,本期教程分享如何使用Scrapy实现多级页面的抓取!

Scrapy 爬取多级页面(二级页面)的代码结构思路

爬取要求:

1:在瓜子二手车官网的一级页面内爬取车辆的名称、价格、链接

2:在每辆车的界面(二级页面)爬取车辆的里程、排量、变速箱

代码思路:

前言:在爬取一级页面的基础上升级代码

第一步:在 item.py 文件内定义二级页面需要抓取的数据字段!

image-20211006153538335

第二步【重点】:在真的爬虫文件内写代码实现多级页面的数据抓取(如下)

image-20211006153551602

第三步:将爬取的数据(一级页面和二级页面)交给 pipelines.py 文件对数据进行保存处理

image-20211006153614025

第四步:编辑 settings.py 文件内信息

image-20211006153622660

第五步:运行爬虫

image-20211006153630738

Scrapy 的爬虫文件内的不同解析函数如何传递数据实现共同处理数据的目的

实现指令:

1:dict1= {“key”:copy.deepcopy(待传递的参数)}

2:yield scrapy.Request(url=…,meta=dict1,callback=func1) 把dict1参数交给func1函数进行处理

注意:
1:必须要用copy.deepcopy()对待传递的参数进行拷贝,否则会造成一级页面抓取的数据重复

2:yield scrapy.Request(url=二级地址,meta=dict1,callback=func1)代码详解:二级页面url地址通过调度器入队列,由下载器下载,把响应对象交给 func1 函数进行处理,meta参数作为响应对象的属性传给func1函数,在func1函数内获取meta参数,可以这么写:响应对象.meta 即可

Scrapy 爬取多级页面(三级页面或多级页面)的代码结构思路

image-20211006153431383