Scrapy XPath选择器返回空列表

Scrapy XPath选择器返回空列表,scrapy,Scrapy,我正试图从存储中刮取数据: 从第一个和第二个表中获取数据并没有问题,但当我往下看时,xpath只返回空列表 甚至尝试将响应保存在文件中: scrapy fetch --nolog "https://www.tibia.com/charactertrade/?subtopic=currentcharactertrades&page=details&auctionid=3475&source=overview" > response.html 对于

我正试图从存储中刮取数据:

从第一个和第二个表中获取数据并没有问题,但当我往下看时,xpath只返回空列表

甚至尝试将响应保存在文件中:

scrapy fetch --nolog "https://www.tibia.com/charactertrade/?subtopic=currentcharactertrades&page=details&auctionid=3475&source=overview" > response.html
对于有技巧的桌子来说,一切都很好

sword = response.xpath('//div [@class="AuctionHeader"]/a/text()').get()
但当涉及到获取例如黄金价值时,我只得到一个空列表:

gold = response.xpath('/html/body/div[3]/div[1]/div[2]/div/div[2]/div/div[1]/div[2]/div[5]/div/div/div[3]/div[2]/div[2]/table/tbody/tr/td/div/table/tbody/tr[2]/td/div[2]/div/table/tbody/tr[3]/td/div/text()').get()
在chrome/firefox中,两个选择器都工作得很顺利,但在scrapy中只有第一个选择器


我知道用javascript更新的数据可能会有一些问题,但这看起来不像是javascript问题。认为XPATH选择器不正确。最好尽可能具体,不要使用多个节点。在这里,我们可以选择属性
TableContent
,以获取所需的表。如果需要,您可以在那里选择所需的每个表

代码示例 输出 解释
使用类属性TableContent,可以选择所需的表。在这里,我选择了具有黄金值的表。然后,我选择了每一行和具有gold值的特定元素。这些值隐藏在span和div元素后面
get()
返回一个字符串,
getall()
返回一个列表。

很高兴它成功了!如果帖子有帮助,你能在左边的答案上打勾吗?非常感谢!
table = response.xpath('//table[@class="TableContent"]')[3] 
gold_title = table.xpath('tr/td/span/text()')[2].get()
gold_value = table.xpath('tr/td/div/text()')[2].get() 
'Gold: '
'31,030'