马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
Python FAQ 048 urllib 访问网址报错 UnicodeEncodeError
问题
为什么下面的代码会报错 UnicodeEncodeError: 'ascii' codec can't encode characters in position 10-14: ordinal not in range(128)?
import urllib.request
response = urllib.request.urlopen("https://baike.baidu.com/item/灶门祢豆子/22390246?fr=aladdin")
html = response.read()
html = html.decode("utf-8")
print(html)
解答
urlopen() 中 URL 不能含有中文,用 urllib.parse.quote() 将中文部分转化一下即可:
import urllib.request
from urllib.parse import quote
response = urllib.request.urlopen(f"https://baike.baidu.com/item/{quote('灶门祢豆子')}/22390246?fr=aladdin")
html = response.read()
html = html.decode("utf-8")
print(html)
|