我一直在使用Beautiful Soup,而在BS4中,它只需做一个很棒的工作
soup = BeautifulSoup(response.read(), from_encoding='Shift_JIS')
如果我尝试在终端上打印并输出到文件中,它会用日语很好地打印出整个html。
<p>PR検索</p>
我通过阅读其他人的问题尝试了lxml中的等效方法
tree = etree.HTML(res.txt, parser=etree.HTMLParser(encoding='shift-jis'))
然而,它以unicode显示所有内容。
<p>PR検索</p>
我也尝试了以下内容,但结果是相同的
tree = etree.HTML(what.text, parser=etree.HTMLParser(encoding='utf-8'))
我已经使用了一个替代方法,首先使用lxml.html来解析页面,然后发送到BS4以获得我想要的编码结果,但是我仍然想知道如何在没有BS4的情况下获得正确的输出,任何帮助理解!
答案 0 :(得分:0)
以下是对我有用的内容:
# -*- coding: utf-8 -*-
from lxml import etree
from lxml.html import fromstring, HTMLParser
data = """<p>PR検索</p>"""
tree = fromstring(data, parser=HTMLParser(encoding='shift-jis'))
print etree.tostring(tree, encoding='shift-jis', method="html")
打印:
<p>PR検索</p>