У меня проблемы с символами Unicode из текста, полученного с разных веб-страниц (на разных сайтах). Я использую BeautifulSoup.
Проблема заключается в том, что ошибка не всегда воспроизводима; он иногда работает с некоторыми страницами, и иногда он задерживает, бросая UnicodeEncodeError
. Я пробовал все, о чем я могу думать, и все же я не нашел ничего, что работает последовательно, не бросая какую-то ошибку, связанную с Unicode.
Ниже приведен один из разделов кода, вызывающий проблемы:
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)
Я подозреваю, что это связано с тем, что некоторые страницы (или, более конкретно, страницы с некоторых сайтов) могут быть закодированы, в то время как другие могут быть незакодированными. Все сайты базируются в Великобритании и предоставляют данные, предназначенные для потребления в Великобритании, поэтому нет вопросов, связанных с интернализацией или использованием текста, написанного ничем, кроме английского.
Есть ли у кого-нибудь идеи относительно того, как решить эту проблему, чтобы я смог ПОСЛЕДОВАТЕЛЬНО исправить эту проблему?