繁体   English   中英

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM