如何使用lxml解析日语中的html并生成可读输出?

时间:2014-03-05 20:44:44

标签: python html-parsing beautifulsoup lxml lxml.html

我一直在使用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&#26908;&#32034;</p>

我也尝试了以下内容,但结果是相同的

tree = etree.HTML(what.text, parser=etree.HTMLParser(encoding='utf-8'))

我已经使用了一个替代方法,首先使用lxml.html来解析页面,然后发送到BS4以获得我想要的编码结果,但是我仍然想知道如何在没有BS4的情况下获得正确的输出,任何帮助理解!

1 个答案:

答案 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>