bs4 не может распознать кодировку python3 - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь очистить несколько страниц с помощью Python3 в первый раз.Я использовал Python2 много раз с bs4 без каких-либо проблем, но я не могу переключиться на python3, так как я всегда получаю ошибки кодирования.

Например, я пытаюсь очистить https://www.pgatour.com/webcom/tournaments/the-bahamas-great-exuma-classic/leaderboard.html

Я перебрал здесь несколько тем, в которых есть похожие вопросы, но безуспешно.

Вот мой код:

r = requests.get('https://www.pgatour.com/webcom/tournaments/the-bahamas-great-exuma-classic/leaderboard.html')
r.encoding = r.apparent_encoding
soup = bs.BeautifulSoup(r.text,'html5lib')
print(soup)

Я получаю следующую ошибку:

UnicodeEncodeError: 'ascii' codec can't encode character '\xd7' in position 28935: ordinal not in range(128)

Я также пытался изменить r.encoding = r.apparent_encoding на r.encoding = "utf-8", получая ту же ошибку.

1 Ответ

0 голосов
/ 27 мая 2019

Вы можете изменить кодировку следующим образом.Это должно исправить вашу ошибку.

r = requests.get("https://s3.amazonaws.com/codecademy-content/courses/beautifulsoup/cacao/index.html")
print(r.encoding)

soup = BS(r.content, 'html.parser').encode('utf-8')

print(soup)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...