4

HTML をスクレイピングしていて、「無効なバイト シーケンス エラー」が発生しています。別の投稿のアドバイスに従い、次の 2 行のコードを挿入しました。

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

常にこの同じバイト シーケンスです。これらを削除するにはどうすればよいですか?

4

1 に答える 1

3

私は自分の問題の解決策を見つけました。問題だったのは、私がスクレイピングしていたXMLドキュメントのエンコーディングでした。これを修正するために、エンコードオプションを明示的にしています。

doc = Nokogiri::XML::Reader(open(url),nil,'ISO-8859-1')

私がちょうど持っていた前に:

doc = Nokogiri::XML::Reader(open(url))

これが誰かを助けることを願っています。

于 2012-10-19T22:41:21.230 に答える