Я загружаю html одного сайта и делаю его с красивым супом вот так:
f_page_soup = Soup(f_driver.page_source, "lxml")
with open(f_filename_pretty, 'wb') as f_output:
f_output.write(f_page_soup.prettify(encoding='utf-8'))
и открываю html с таким названием:
ecjData = open(filename, 'r', encoding='utf-8').read()
pageSoup = Soup(ecjData, "lxml")
Внутри htmlразные ссылки, которые я хочу собрать с BeautifulSoup.Один из них выглядит следующим образом example.com/weiß/3
После перебора всех ссылок я хочу их распечатать.Делая это:
print ("https://example.com" + a["href"])
дает мне UnicodeEncodeError
для указанной выше ссылки, как и ожидалось.
Так что после обнаружения ошибки я пытаюсь ее декодировать:
print (("https://example.com" + a["href"]).encode('utf-8').decode('latin-1'))
что приводит к
'ascii' codec can't encode characters in position 78-79: ordinal not in range(128)
Другой подход, который я пробовал, заключался в замене внутри строки:
print (str(("https://example.com" + a["href"]).encode('utf-8')).replace('\\xc3\\x9f','ß'))
, что затем снова приводит к:
'ascii' codec can't encode character '\xdf' in position 80: ordinal not in range(128)
В основномчто мне нужно напечатать:
"https://example.com/weiß/3"
Как мне этого добиться?Я использую Python 3.5.