Python 当页面中存在Unicode时,Scrapy XPath不正确
我想得到所有有分类类的div 看看这个页面:www.postkhmer.com/ព័ត៌មានជាតិ 在scrapy shell中: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
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,它按预期工作!再次感谢。你能证明这一点吗?