そこで、 nokogiriを使用して特定のサイトのスクリーンスクレイピングを実行しようとしていますが、サイトの所有者は<meta>
タグでページの適切なエンコーディングを指定できませんでした。その結果、utf-8であると思われる文字列を処理しようとしていますが、実際にはそうではありません。
(気になる場合は、これをテストするために使用したファイルは次のとおりです。
- メインファイル:http ://dpaste.de/nif5/
- ann.html:http ://dpaste.de/YsLM/
- ann2.html:http ://dpaste.de/Lofi/
- ann3.html:http ://dpaste.de/R21j/
- ap.html:http ://dpaste.de/O9dy/
- 出力:http ://dpaste.de/WdXc/
)。
多くの検索を行った後(このSOの質問encode('iso-8859-1', 'utf-8')
は特に役に立ちました)、適切な©記号を取得するという点で、そのテスト文字列を呼び出すと「機能する」ことがわかりました。ここでの問題は、ラテン語のエンコーディングに変換する際に実際には機能しない、他の文字列に他の文字が含まれていることです(Shōta
たとえば、になりますSh�\x8Dta
)。
今、私はおそらく適切なウェブマスターを悩ませて、彼らに彼らのいまいましいエンコーディングを修正してもらうつもりですが、それまでの間、私は私が持っているバイトを使用できるようにしたいと思います。方法があることはかなり確信していますが、それが何であるかを一生理解することはできません。