pyquery报错:UnicodeDecodeError: 'gbk' codec can't decode byte

Peggy ·
更新时间:2024-09-20
· 758 次阅读

  今天想使用pyquery库读取本地HTML文件时报错:UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xa1 in position 164: illegal multibyte sequence。 翻译一下就是UnicodeDecodeError: 'gbk’编解码器无法解码位置164中的字节0xa1:非法多字节序列。
   分析原因: 这个HTML文件是utf-8格式的文件,存储是二进制数据,使用pyquery读取时是采用gbk进行解码!读到了非gbk编码形式的二进制数据,于是就报错了!
  排错过程: 我通过查看pyquery源码,企图搜索是否存在能传解码格式的参数,发现并没有!于是只能百度一下了,发现大多数方案都是将中文去掉(emmm,他们这样等于没说)。终于找到了另一种方法,就是将html文本先读出来,使用pyquery的另一种初始化方式进行读取。但是,这种还是治标不治本,我觉得最好是能够修改解码方式,希望有懂的大神教教我!
  附上修改方案:

from pyquery import PyQuery as pq def method1(): with open("demo.html", "r", encoding="utf-8")as f: content = f.read() print(type(content)) # str类型 result = pq(content) print(result('title')) if __name__ == '__main__': # doc = pq(filename='demo.html') # 报错 method1()

有错误的地方敬请指出!觉得写得可以的话麻烦给个赞!欢迎大家评论区或者私信交流!


作者:1/4糖柠檬茶



byte pyquery gbk

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章