如何在BeautifulSoup中打开编码为windows-1252的HTML页面
我在用beautifulsoup解析一个HTML文档的时候遇到了麻烦。请问用windows-1252编码打开HTML文档的最佳方法是什么?
我尝试用iconv转换成utf-8,但这也不行。
doc = open("e.html").read()
soup = BeautifulSoup(doc)
soup.findAll('p')
出现了UnicodeEncodeError错误:'ascii'编码无法在位置103编码字符u'\xfc',因为这个字符不在范围内(128以内)。
当我不使用iconv打开时,也会出现同样的错误。
完整的错误追踪信息:
>>> soup.findAll('p')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 103: ordinal not in range(128)
2 个回答
0
试试这样做:
doc = open("e.html").read()
doc = doc.decode('cp1252')
soup = BeautifulSoup(doc)
soup.findAll('p')
1
我遇到了类似的错误:
Unicode解码错误:'utf-8' 编码无法解码位置723617的字节0xe9:无效的继续字节
对我有效的方法是这样指定输入的编码:
page = open("page.html", encoding="windows-1252")
soup = BeautifulSoup(page.read(), "html.parser")