![](/img/trans.png)
[英]Why am I getting an empty array with (scrapy shell response.xpath())?
[英]Scrapy shell response.xpath returning blank array [ ]
xpath 是:
/html/body/form/div[12]/div/div[5]/div/div[3]/div[1]/div[13]/ul/li[*]/div/ul/li/ul/li[2]/div[3]
我通过以下字符串通过 Chrome 控制台获取输出:
$x('/html/body/form/div[12]/div/div[5]/div/div[3]/div[1]/div[13]/ul/li[*]/div/ul/li/ul/li[2]/div[3]/text()')
但是当我在 Scrapy shell 中输入 response.xpath 而不是 $s 并在末尾包含 .extract() 时,它返回一个空白数组 []。
>>> response.xpath('/html/body/form/div[12]/div/div[5]/div/div[3]/div[1]/div[13]/ul/li[*]/div/ul/li/ul/li[2]/div[3]/text()').extract()
[]
有人可以帮忙吗。 提前致谢
PS:我知道这是一条绝对路径。 想了解为什么它在 Chrome 控制台中工作,而不是在 Scrapy Shell 中
有时,源代码中不存在 body 标签,但浏览器会添加它。 所以 xpath 不能使用 body 标签
所以也许你可以尝试一下
/html//form/div[12]/div/div[5]/div/div[3]/div[1]/div[13]/ul/li[*]/div/ul/li/ul/li[2]/div[3]/text()
另一方面,您的 xpath 看起来非常硬编码,它应该足够灵活..您应该阅读 xpath 教程并使用 Elements @id 和其他属性使其变得简单
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.