[英]Why am I getting an empty array with (scrapy shell response.xpath())?
我想知道为什么即使我做了response.xpath('//div').extract()
,response.xpath()在此页面中仍返回一个空数组[]
! 例:
$ scrapy shell https://www.amazon.cn/b/2127529051
...
>>> response.xpath('//div').extract()
[]
我可以从主页上得到一些结果,但是不能从许多其他页面上得到任何结果。
顺便说一句, 我不是在尝试爬行亚马逊之类的东西,它只是出于学习目的。
我也尝试过其他站点,但是没有遇到这个问题,所以我想知道为什么。
有任何想法吗?
谢谢
response.xpath('\\\\div').execute()
这条线是错误的。 首先,您在这里使用正斜杠而不是反斜杠。 同样execute()
也不是Selector
或SelectorList
对象的方法(那些是由response.xpath()方法返回的值)。
试试: response.xpath("//div").extract()
除了破坏代码之外,关闭JavaScript并运行view(response)
以查看您的蜘蛛正在查看的内容是一种很好的做法。 在某些情况下,您的Spider可能甚至看不到"//div[@id='name']"
因为它是用javascript加载的。
response.xpath('\\ div')。execute()
可能只有很少的原因
用户代理: scrapy shell site name -s USER_AGENT='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36'
您的回应为空,请尝试回应。 它显示200-300,然后还好
路径错误,根据站点
这应该可以解决您的问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.