Python Scrapy遇到的问题(已解决)

目录

一、scrapy爬取58同城时,response.xpath()返回空列表错误

二、scrapy没有返回我们想要的数据

三、scrapy工作原理(非常重要!!!面试必考!!!)


一、scrapy爬取58同城时,response.xpath()返回空列表错误

 刚开始以为是xpath路径没对,但是试过很多次,在谷歌中xpath插件都是正确定位,一直返回空列表,用这个直接复制的xpath路径,依然返回空列表。

最后破案了!!!不知道什么原因我的url只有半截!!!(气死了)我需要的url:

但是我创建这个文件的时候粘贴到cmd中是正确完整的网址,到pycharm中打开就只剩了半截,变成了‘yc.58.com’!!!!

这么一个小问题,浪费我一个小时.......

路径改对后就能成功返回了:

还有一个关于url的注意事项,如果后缀是.html时,不能在最后加/

这个很好试验,以汽车之家为例:该网址后缀为.html

在后面加/会出现:404

二、scrapy没有返回我们想要的数据

一定要检查一下xpath对不对!!!

一直没返回,试了n种方法,而且我的xpath是跟着尚硅谷一样敲的,所以就没怀疑是它的问题,把cookie加了UA也加了一直没有返回值,最后发现是xpath不对

改了之后就可以正常返回了:

三、scrapy工作原理(非常重要!!!面试必考!!!)

1.引擎向spider要url
2.引擎将要爬取的url给调度器
3.调度器会将url生成请求对象放入到指定的队列中
4.从队列中出队一个请求
5.引擎将请求交给下载器进行处理
6.下载器发送请求获取互联网数据
7.下载器将数据返回给引擎
8.引擎将数据再次给到spiders
9.spiders通过xpath解析该数据,得到数据或者url
10.spiders将数据或者url给到引擎
11.引擎判断是数据还是url,是数据,交给管道(item pipeline)处理;是url,交给调度器处理

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值