目录
一、学习资源
5、架构组成
三、项目分析
(3)检查
问题①
问题②
②管道下载
一、学习资源
二、知识点介绍
1、scrapy介绍
2、scrapy安装与错误解决
3、scrapy基本使用
4、项目结构和基本方法
(1)实例:
5、架构组成
6、scrapy工作原理
(2)实例:汽车之家
三、项目分析
(1)首先定位到要获取的数据的标签的属性
(2)获取数据
上一个案例用的是把所有的数据下下下来保存到一个列表中,然后再通过遍历的方式去一个一个收数据的取,这里介绍一个新的方法:seletor对象可以再次调用xpath方法,也就是说先把统一的路径给分离出来,然后再调用xpath。
(3)检查
问题①
所有的图片路径都是一样的
原因及解决办法
这是一种常见的反爬手段,图片的懒加载,即图片的真正路径不是@src了(除了第一个以外),发现问题之后再去检查网页,发现除第一个以外的图片路径为@data-original。
第一次路径:
之后的路径:
问题②
当把路径改为@data-original之后,发现第一张图片为none
原因及解决办法
检查之后发现其实第一章图片的位置没有变,只是后面的懒加载所以变了,所以此处要进行判断。当是第一张图片的时候路径就为@src,其它情况为@data-original。
(4)下载(单个管道)
①先定义数据结构(items程序)
②管道下载
(1)先在settings中开启管道 解开ITEM_PIPELINES的注释
(2)将获取的值传入管道中
③下载数据到文件中
注:这种模式不推荐 因为每传递过来一个对象 那么打开一个文件 对文件的操作过于频
改进:
(5)多个管道下载
①定义管道类
②在settings中开启管道
(6)多个管道下载实现
每一页的爬取的业务逻辑全部都是一样的,所以我们只需要将执行的那个页的请求再次调用parse方法就可以了(注意页码的变化),页码的变化会引起url的变化,这是需要注意的点
四、项目源码
此项目包含多个函数和文件,需要源码的评论区留言即可。