python3爬虫的编码问题

from urllib.request import urlopen
textPage = urlopen("https://fengshenfeilian.github.io/")
print(textPage.read())

在非纯英文网页上爬取数据时,总是会出现各种意想不到的乱码。

比如上文的代码运行结果含有中文,且所有中文都被替换成乱码。

这个问题是因为python默认的把文本读成ascII

在这里我们要是用UTF-8编码格式,就可以把一切字符正常的显示了

上文代码改成:

from urllib.request import urlopen
textPage = urlopen("https://fengshenfeilian.github.io/")
print(str(textPage.read(),'utf-8'))

显示结果完全正确

用BeautifulSoup 和Python 3.x 对文档进行UTF-8 编码,如下所示:
html = urlopen("https://fengshenfeilian.github.io/")
bsObj = BeautifulSoup(html)
content = bsObj.find("div", {"id":"mw-content-text"}).get_text()
content = bytes(content, "UTF-8")
content = content.decode("UTF-8")

你可能打算以后用网络爬虫的时候全部采用UTF-8 编码读取内容,毕竟UTF-8 也可以完美地处理ASCII 编码。但是,要记住还有9% 的网站使用I

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值