Scrapy shell response.xpath返回空白数组[]

时间:2016-03-29 11:03:09

标签: python shell xpath scrapy

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()')

但是当我输入response.xpath而不是$ s并在Scrapy shell的末尾包含.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中工作

1 个答案:

答案 0 :(得分:0)

有时候身体标签在源中不存在,但是浏览器会添加它。所以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和其他属性简化它