1

重複の可能性:
htmlタグ/構造を維持しながらhtml内のテキストを検索/置換する方法

HTML テキストを検索して置換したい。タグやその属性をいじりたくはありません。HTML テキストだけです。Pythonでそれを行うにはどうすればよいですか?

4

2 に答える 2

2
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>
于 2013-01-03T07:53:25.517 に答える
0

Reモジュールで試すことができます。または、置換機能を使用してください。

ただし、複数のキーワードを置き換える必要がある場合、検索と置換は非常に非効率的な処理です。beautifulSoupまたはlxmlを使用して構造をより適切に解析し、オブジェクトを取得して、オブジェクトに対していくつかの操作を実行する必要があります。

于 2013-01-03T07:55:50.643 に答える