1、问题描述
今天在使用pyquery库读取本地HTML文件时报错:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xa8 in position 805: illegal multibyte sequence
代码如下:
from pyquery import PyQuery as pq
path = r'../../xx.html'
html = pq(filename=path)
print(html('h1'))
2、问题原因
该错误通常是因为编码方式不一致导致的
一种情况是,如果HTML采用GBK编码方式,而IDE默认采用UTF-8编码方式,导致无法正常解码
另一种情况是,当CSV文件的表头包含中文时,可能导致同样的错误
总的来说,你需要在读取文件时保证正确的编码方式,匹配文件的实际编码方式
3、问题解决
对于采用非UTF-8编码的HTML,可以使用open()指定正确的编码打开文件:文章来源:https://www.toymoban.com/news/detail-738825.html
with open(r'../../xx.html', "r", encoding="utf-8") as file:
content = file.read()
html = pq(content)
print(html('h1'))
对于包含中文表头的CSV,也是同样的道理:文章来源地址https://www.toymoban.com/news/detail-738825.html
data = pd.read_csv(r'../../xx.csv', encoding="utf-8")
到了这里,关于PyQuery报错:UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xa8...的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!