目录
一、scrapy爬取58同城时,response.xpath()返回空列表错误
一、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,交给调度器处理