別の Web ページ (別のサイト) から取得したテキストからの Unicode 文字の処理に問題があります。BeautifulSoupを使用しています。
問題は、エラーが常に再現できるとは限らないことです。一部のページで動作することもあれば、UnicodeEncodeError
. 考えられることはすべて試してみましたが、何らかの Unicode 関連のエラーをスローせずに一貫して動作するものは見つかりませんでした。
問題を引き起こしているコードのセクションの 1 つを以下に示します。
agent_telno = agent.find('div', 'agent_contact_number')
agent_telno = '' if agent_telno is None else agent_telno.contents[0]
p.agent_info = str(agent_contact + ' ' + agent_telno).strip()
上記のスニペットを実行したときに、一部の文字列で生成されるスタック トレースを次に示します。
Traceback (most recent call last):
File "foobar.py", line 792, in <module>
p.agent_info = str(agent_contact + ' ' + agent_telno).strip()
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 20: ordinal not in range(128)
これは、一部のページ (より具体的には、一部のサイトのページ) がエンコードされている可能性があり、他のページがエンコードされていない可能性があるためだと思われます. すべてのサイトは英国に拠点を置いており、英国での消費を目的としたデータを提供しているため、英語以外で書かれたテキストの内部化や処理に関連する問題はありません.
この問題を一貫して修正できるように、これを解決する方法について何か考えがある人はいますか?