1

フィードを解析したい

feed = feedparser.parse(url)
e = feed.entries[0]
summary=e['summary']

BeautifulSoapを使用して要約を解析しているとき。

self.summary = BeautifulSoup(summary.encode('utf-8')) #summary

エラーが発生しました。

例外の種類: UnicodeEncodeError 例外値: 'ascii' コーデックは位置 755 の文字 u'\xa3' をエンコードできません: 序数が範囲内にありません (128)

問題は、文字£4,000にあります。私は試しました:

summary.encode('utf-8','ignore'), summary.encode('ascii','ignore')

これを解決するために多くの時間を費やしていますが、まだできません。だから私はここでこの質問をしています。

最も多くの文字数をサポートするエンコーディングまたはその文字をスキップする方法を教えていただければ、非常に役に立ちます。

4

1 に答える 1

1

utf8ポンド記号を含むhtmlファイルを文字列「file」にロードしようとしました

これにより、表示されているのと同じエラーが発生しました

soup2=BeautifulSoup(file.encode('utf8'))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 17: ordinal not in range(128)

しかし、これはうまく機能しているように見えました

soup2=BeautifulSoup(file.decode('utf-8'))
soup2.find('p')
<p>£
</p>

「エンコード」と「デコード」の概念は、あなたが期待しているものとは逆だと思います。お役に立てれば。

于 2013-06-03T12:03:11.337 に答える