python爬取网页出现乱码

今天在爬一个网页的时候,爬完打开txt文件看到内容是一片乱码:
在这里插入图片描述
上网查了之后发现是中文编码格式的问题。

首先查看网页编码:

res = requests.get(url,timeout=30)
print(res.encoding)

输出是ISO-8859-1。

参考python中把ISO-8859-1编码转化为UTF-8修改代码,最初因为格式问题总是报错。
在这里插入图片描述
这时候的res返回的是一个包含服务器资源的Response对象,包含从服务器返回的所有的相关资源,而encode是针对字符串使用的。
上面链接中也是以字符串为实例,所以不能直接加在res后面。

res = requests.get(one_book_url,timeout=30)
res = res.text.encode("ISO-8859-1")
res = res.decode("utf-8")

这时候的res是字符串,所以在BeautifulSoup中应该是:

soup = BeautifulSoup(res,"html.parser")

对比一下修改前后的代码。
修改前:

res = requests.get(one_book_url,timeout=30)
soup = BeautifulSoup(res.text,"html.parser")

修改后:

res = requests.get(one_book_url,timeout=30)
res = res.text.encode("ISO-8859-1")
res = res.decode("utf-8")
soup = BeautifulSoup(res,"html.parser")

在想通老是报错的原因之前感觉自己一直像个傻子一样乱转,根本原因是自己对这些方法都不熟悉,其实这些都是很基础的知识,想通了之后突然就觉得真的挺简单的…

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值