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中工作答案 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和其他属性简化它