我正在抓取html并遇到“无效的字节序列错误”。我在另一篇文章中提到了一些建议并插入了以下两行代码:
doc_scores.encode!('UTF-16', :undef => :replace, :invalid => :replace, :replace => "")
doc_scores.encode!('UTF-8')
这有助于大幅减少错误,但是,我仍然会在10-20%的时间内发现以下异常(换句话说,每5次html扫描中就有1次):
Input is not proper UTF-8, indicate encoding !
Bytes: 0xEA 0x20 0x20 0x22
它始终是相同的字节序列。有什么想法我应该去除这些吗?
答案 0 :(得分:3)
我找到了解决问题的方法。事实证明,我正在抓取的XML文档的编码是一个问题。为了解决这个问题,我现在正在明确编码选项:
doc = Nokogiri::XML::Reader(open(url),nil,'ISO-8859-1')
在我刚出现之前:
doc = Nokogiri::XML::Reader(open(url))
希望这有助于某人。