由于Windows系统默认GBK编码,用pyquery解析本地html文件,如果文件中有中文,会报错:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xa3 in position 12: illegal multibyte sequence
解决方法:
在python3中用open()方法打开文件时,windows系统会默认使用GBK编码,所以open()方法需要传入参数'encoding=utf-8'。相关代码如下:
from pyquery import PyQuery as pq
with open("filepath", encoding="utf-8") as f:
content = f.read()
doc = pq(content)
这样后续的操作就没问题了。
结论:以后在Windows环境下读文件,都可以采用这种方法,避免再次出现UnicodeDecodeError。