Python中的HTMLParsing

2024-04-25 12:36:38 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我需要用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解析成标记,每个标记中都有原始文本,这样我就可以输出我想要的输出。。。i、 例如

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

有人知道一个好的Python方法来完成这个吗?Python 2.7标准LIBS是优选的,第三方也将是有用的考虑…你知道吗

谢谢!你知道吗


Tags: no标记内容htmltagbody标签字符
1条回答
网友
1楼 · 发布于 2024-04-25 12:36:38

您可以使用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

我将留给您实现非常棒的\u TRANSLATE函数;)

相关问题 更多 >