bs4无法识别编码python3

时间:2018-09-11 15:23:36

标签: python-3.x beautifulsoup

我试图第一次使用Python3抓取几页。我已经在bs4上多次使用Python2,没有任何麻烦,但是由于总是出现编码错误,我似乎无法切换到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 :(得分:0)

您可以如下更改编码。这应该可以解决您的错误。

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)