解决 UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 8530: illegal multi

最近开始学习python,在做网络库学习时,遇到个问题,就是抓取百度主页,然后把内容保存在文本文件里,在往文件写数据时抛出异常“UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 1226: illegal multibyte sequence”,大家都很清楚这是个字符编码的异常,但是这里是哪个环节出的编码问题呢,先百度一下吧,找到的结果都是说网络请求时编码有问题,按照他们的解决方式常识解决--无果,最后开始逐条分析异常信息,发现抛出异常在写文件时,这肯定是文件编码有问题喽,设置了UTF-8后问题解决,以下是我的代码:

from urllib.request import urlopen
import os
class Network:
    __url = ""
    def __init__(self, url):
        self.url = url

    def getData(self):
        baiduHtml = open("baidu.html", "w+", 50, "UTF-8")
        # baiduHtml = open("baidu.html", "w+")
        for line in urlopen(self.url):
            line = line.decode("utf-8")
            print(line)
            baiduHtml.write(line)


network = Network("http://www.baidu.com")
network.getData()
network.getData()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值