1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【Python】处理UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xa2 in position…

【Python】处理UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xa2 in position…

时间:2019-01-22 22:11:07

相关推荐

【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)# 解析HTMLsoup = 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>

大碗宽面,真香!

可见这东西与文档格式有关,它会关注到空白字符,和浏览器解析显示不同。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。