Scrapy: 为什么xpath和css明明是对的,但却爬不到任何内容?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/La_vie_est_belle/article/details/79320093

有很多小伙伴入门Scrapy的时候都会有这样的疑问:明明写的xpath和css是对的(就算真自己写错,那用谷歌或火狐返回的xpath和css不会错的吧),但总是返回一个空列表。

解决办法很简单,改变自己的一个观念就好:Scrapy爬虫看到的页面结构与我们自己在浏览器看到的可能并不一样

所以scrapy shell这种工具就非常有用了。

官方对它的说明是:

The shell is used for testing XPath or CSS expressions and see how they work and what data they extract from the web pages you’re trying to scrape. It allows you to interactively test your expressions while you’re writing your spider, without having to run the spider to test every change.Scrapy Shell文档

简而言之,就是来帮助你测试xpath和css,看你写的是否能真的爬到所想要的信息。

假如你在scrapy shell中输入xpath和css后,发现输出为空,使用view(response)命令来看看爬虫所看到的页面是如何的(可以在弹出的浏览器中审查元素)。

你可能会发现:

1.在爬虫看到的页面结构中,某个页面元素的id或者class可能不一样(甚至元素名字也不一样)。

2.你所爬的是一个动态网页(使用veiw(response)之后,发现你所需要的信息并没有显示出来)。

确定问题之后,你再去写爬虫,这样就不必每次因为点小改动而运行整个项目啦。

若有其他可能,欢迎大家来探讨~

新建了个Python QQ交流群,大家可以加下相互学习交流:820934083

猜你喜欢

转载自blog.csdn.net/La_vie_est_belle/article/details/79320093