所以我需要在Python中处理一些HTML,我的要求是我需要找到一个特定的标签,并根据字符的内容用不同的字符替换它......
<html>
<Head>
</HEAD>
<body>
<blah>
<_translate attr="french"> I am no one,
and no where <_translate>
<Blah/>
</body>
</html>
应该成为
<html>
<Head>
</HEAD>
<body>
<blah>
Je suis personne et je suis nulle part
<Blah/>
</body>
</html>
我想保持原始HTML不变,只替换标记为'important-tag'的标签。属性和该标记的内容对于生成标记输出很重要。
我曾经使用过扩展HTMLParser对象,但是当我想要它时,我无法找到原始HTML。我认为我最想要的是将HTML解析为令牌,并在每个令牌中使用原始文本,这样我就可以输出我想要的输出...即得到像
这样的东西(tag, "<html>")
(data, "\n ")
(tag, "<head>")
(data, "\n ")
(end-tag,"</HEAD>")
ect...
ect...
任何人都知道有一个好的pythonic方法来实现这个目标吗?首选Python 2.7标准库,第三方也可以考虑...
谢谢!
答案 0 :(得分:2)
您可以使用lxml执行此类任务http://lxml.de/tutorial.html并使用XPath轻松导航您的html:
from lxml.html import fromstring
my_html = "HTML CONTENT"
root = fromstring(my_html)
nodes_to_process = root.xpath("//_translate")
for node in nodes_to_process:
lang = node.attrib["attr"]
translate = AWESOME_TRANSLATE(node.text, lang)
node.parent.text = translate
我将向您介绍AWESOME_TRANSLATE函数的实现;)