【问题标题】:Search and replace HTML Text, not tags [duplicate]搜索和替换 HTML 文本,而不是标签 [重复]
【发布时间】:2012-12-17 13:48:27
【问题描述】:

可能重复:
How to find/replace text in html while preserving html tags/structure

我想通过 HTML 文本进行搜索和替换。我不想摆弄标签或其属性,只是 HTML 文本。我应该如何在 Python 中做到这一点?

【问题讨论】:

  • 你能贴出不能正常工作的代码吗?

标签: python html xml


【解决方案1】:
import lxml.etree as et
html=\
"""
<!DOCTYPE html>
<html>
  <head>
    <title>Hello HTML</title>
  </head>
  <body>
    <p>Hello 1</p>
    <p>Hello 2</p>
    <p>Hello 3</p>
    <p>Hello 4</p>
  </body>
</html>
"""
doc = et.fromstring(html)
for i in doc.xpath('.//p[contains(.,"Hello") and not(contains(.,"4"))]'):
    i.text='replaced'
print et.tostring(doc,pretty_print=True)

输出:

<html>
  <head>
    <title>Hello HTML</title>
  </head>
  <body>
    <p>replaced</p>
    <p>replaced</p>
    <p>replaced</p>
    <p>Hello 4</p>
  </body>
</html>

【讨论】:

    【解决方案2】:

    您可以尝试使用Re 模块。或者只使用replace 函数。

    但是如果您需要对多个关键字进行替换,则搜索和替换的处理效率非常低。最好通过beautifulSouplxml解析结构,获取对象,对对象做一些操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-07
      • 1970-01-01
      • 2013-05-01
      • 1970-01-01
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      • 2012-10-19
      相关资源
      最近更新 更多