我试图第一次使用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"
,并得到相同的错误。
答案 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)