Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python xpath属性中忽略了刮擦式连字符_Python_Xpath_Scrapy - Fatal编程技术网

Python xpath属性中忽略了刮擦式连字符

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) 输出=[] 我已经对此做了一个变通办法,但是如果我能知道什么是错的,那就太好了。埃尔鲁尔好

有一个表我想用Xpath和Scrapy解析。当我试图刮取所有具有“data row”属性的行时,我什么也得不到。但是,我可以访问数据行的子级,只要我没有明确地说“数据行”。我相信这与属性名中的连字符有关

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假设可能是正确的。