Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.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

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 当页面中存在Unicode时,Scrapy XPath不正确_Python_Xpath_Scrapy - Fatal编程技术网

Python 当页面中存在Unicode时,Scrapy XPath不正确

Python 当页面中存在Unicode时,Scrapy XPath不正确,python,xpath,scrapy,Python,Xpath,Scrapy,我想得到所有有分类类的div 看看这个页面:www.postkhmer.com/ព័ត៌មានជាតិ 在scrapy shell中:scrapy shell'www.postkhmer.com/ព័ត៌មានជាតិ' 如你所见,我只得到了2个元素 刮刮——不刮http://www.postkhmer.com/ព័ត៌មានជាតិ > page.html scrapy shell./page.html xpath('//div[@class=“category”]')) 仍然只有2

我想得到所有有分类类的div

看看这个页面:www.postkhmer.com/ព័ត៌មានជាតិ

在scrapy shell中:
scrapy shell'www.postkhmer.com/ព័ត៌មានជាតិ'

如你所见,我只得到了2个元素


刮刮——不刮http://www.postkhmer.com/ព័ត៌មានជាតិ > page.html
scrapy shell./page.html
xpath('//div[@class=“category”]'))
仍然只有2个元素回来了。但当我在Sublime中打开page.html时

我有15场比赛:

最有趣的部分是:当我从第二类中移除锚链时:

我再次在scrapy shell中运行
response.xpath('//div[@class=“category”]')
,得到3个元素:

我在想什么!?有人能帮我解决这个问题吗


我已经上传了这个文件,以防你想在本地测试

将页面保存到本地文件
page.html
时,跳过包含编码信息的http头。 稍后,当您使用scrapy或sublime打开此文件时,他们不知道文档的原始编码是什么


建议:从未使用过保存到文件中用于解析的文档。

这里只能发生两件事。要么html格式不正确,scrapy无法解析它,要么scrapy和编码有问题。我认为第一种可能性更大。有点泄露了


因为它在Chrome上工作,所以我建议使用selenium使浏览器修复代码并从中删除元素。我没有进行测试,但可能刮擦飞溅也有相同的效果。

这是一个随机猜测。我从未使用过scrapy和python。当您请求这些元素时,它们可能没有被加载?您是否可以等待一段时间,以便加载页面或所有类别?是否可能您的代码只加载屏幕上可见的元素?获取此文件和scrapy shell,然后获取xpath,您就会知道这是python和scrapy的问题。如果您确定这是py和scrapy的问题,那么请提交错误报告。这里只会发生两种情况。要么html格式不正确,scrapy无法解析它,要么scrapy和编码有问题。我认为第一种可能性更大。(这个)[有点泄露了它。由于它在Chrome上工作,我建议使用selenium让浏览器修复代码并从中删除元素。我没有进行测试,但scrapy splash可能也有同样的效果。@RafaelAlmeida:我尝试过selenium,它按预期工作!再次感谢。你能证明这一点吗?