Python xpath属性中忽略了刮擦式连字符
有一个表我想用Xpath和Scrapy解析。当我试图刮取所有具有“data row”属性的行时,我什么也得不到。但是,我可以访问数据行的子级,只要我没有明确地说“数据行”。我相信这与属性名中的连字符有关Python xpath属性中忽略了刮擦式连字符,python,xpath,scrapy,Python,Xpath,Scrapy,有一个表我想用Xpath和Scrapy解析。当我试图刮取所有具有“data row”属性的行时,我什么也得不到。但是,我可以访问数据行的子级,只要我没有明确地说“数据行”。我相信这与属性名中的连字符有关 def parse_item(self, response): rows = response.xpath("//tr[@data-row]") print(rows) 输出=[] 我已经对此做了一个变通办法,但是如果我能知道什么是错的,那就太好了。埃尔鲁尔好
def parse_item(self, response):
rows = response.xpath("//tr[@data-row]")
print(rows)
输出=[]
我已经对此做了一个变通办法,但是如果我能知道什么是错的,那就太好了。埃尔鲁尔好心地在我问题的评论中给出了答案。我相信'-row'部分是通过javascript动态添加的。我在另一个网站上再次遇到了这个问题。通过使用GoogleChrome并进入开发者工具->网络->JS,我查看了添加到class属性的脚本。根据eLRuLL的评论,我假设这是以前发生的事情,而另一个网站确实是这样做的。您的xpath在这个问题上正确吗?它似乎缺少结束符
]
而且数据行
标记属性正在使用javascript动态添加,它实际上不是response.body的一部分。对此问题有任何更新吗?很抱歉,是的,在更正中键入xpath时,我的xpath是错误的。我会编辑的。然而,在我的代码中,括号就在那里。我对它做了一个研究,所以我只是好奇为什么它不起作用。我认为您的javascript假设可能是正确的。