0

所以我需要在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 不变,只替换标记为“重要标签”的标签。该标签的属性和内容对于生成标签输出很重要。

我曾考虑过使用扩展 HTMLParser 对象,但是当我想要它时无法获取原始 HTML。我想我最想要的是将 HTML 解析为标记,每个标记中都有原始文本,这样我就可以输出我想要的输出......即得到类似的东西

(tag, "<html>")
(data, "\n    ")
(tag, "<head>")
(data, "\n    ")
(end-tag,"</HEAD>")
ect...
ect...

任何人都知道一个很好的pythonic方法来完成这个?首选 Python 2.7 标准库,第三方也可以考虑...

谢谢!

4

1 回答 1

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 函数的实现留给你;)

于 2013-11-12T08:44:45.700 回答