【Python】处理UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xa2 in position…
编码格式问题
Traceback (most recent call last):
File “D:/PyCharm/text_processing/解析并清洗HTML.py”, line 6, in <module>
lines = f.readlines()
UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xa2 in position 216: illegal multibyte sequence
遇到此情况,就是编码格式的问题了,我们应该设置编码格式为UTF-8:
with open(‘test.html’, ‘r’, encoding=‘UTF-8’) as f:
bs4.FeatureNotFound
Traceback (most recent call last):
File “D:/PyCharm/text_processing/解析并清洗HTML.py”, line 11, in <module>
soup = BeautifulSoup(string, “lxml”)
File “D:\PyCharm\text_processing\venv\lib\site-packages\bs4\__init__.py”, line 228, in __init__
% “,”.join(features))
bs4.FeatureNotFound: Couldn’t find a tree builder with the features you requested: lxml. Do you need to install a parser library?
这个问题的产生原因是缺少lxml库,可以pip一下:pip3 install lxml
测试代码
from bs4 importstring = ""with open('test.html', 'r', encoding='UTF-8') as f:lines = f.readlines()for i in lines:string = '%s %s' % (string, i)# 解析HTML soup = BeautifulSoup(string, "lxml")# 查找id为"b_id"的div标签,并查看文本 print(soup.find("div", {"id": "b_id"}).text) <!DOCTYPE html> <html lang="ch"> <head><meta charset="UTF-8"><title>测试页面</title> </head> <body><div id="a_id"><div id="b_id"><div id="c_id">大碗宽面,真香!</div></div></div> </body> </html> 大碗宽面,真香! <!DOCTYPE html> <html lang="ch"> <head><meta charset="UTF-8"><title>测试页面</title> </head> <body><div id="a_id"><div id="b_id"><div id="c_id">大碗宽面,真香!</div></div></div> </body> </html> 大碗宽面,真香! <!DOCTYPE html> <html lang="ch"> <head><meta charset="UTF-8"><title>测试页面</title> </head> <body><div id="a_id"><div id="b_id"><div id="c_id">大碗宽面,真香!</div></div></div> </body> </html> 大碗宽面,真香!可见这东西与文档格式有关,它会关注到空白字符,和浏览器解析显示不同。
总结
以上是生活随笔为你收集整理的【Python】处理UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xa2 in position…的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 【VB.NET】VB.NET程序设计学习
- 下一篇: 【Python】处理 pydotplus