0

HTMLドキュメントに次のテキストがあります:

<a href="#">�'ам интересна информация</a>

テキストを抽出するために次の式を使用しています。

row.xpath("string(./td[@class='col2 td-tags']/h3/a/text())")

この式は単純な英語では問題なく機能しますが、上記の文字列では次のエラーがスローされます。

'utf8' codec can't decode byte 0xd0 in position 0: invalid continuation byte
4

3 に答える 3

6

HTML では、&#xxx はドキュメントのエンコーディングでバイトを指定しません。それは常にユニコードのコードポイントです。

したがって、UTF-8 をそのような HTML に入れることはできません。

于 2012-08-29T07:59:42.400 に答える
2

ドキュメントのエンコーディングは何ですか? でテキストを開始する文字は<a>? 無効な UTF-8 である可能性があります。

于 2012-08-29T08:11:24.280 に答える
1

最初にページの内容(文字列を含む)をデコードして、<a href="#">�'ам интересна информация</a>変換できない文字列を疑問符に置き換えましたが、機能しました。

すなわちpage_contents_string = page_contents_string.decode("utf-8", "replace")

于 2012-08-29T14:03:35.157 に答える