Beautiful Soupを使用して、すべての埋め込みテキストを反復処理するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/830997

  •  06-07-2019
  •  | 
  •  

質問

母音をHTMLから削除したいとしましょう:

<a href="foo">Hello there!</a>Hi!

なる

<a href="foo">Hll thr!</a>H!

これはBeautiful Soupの仕事だと思います。タグ間でテキストを選択し、このように操作するにはどうすればよいですか?

役に立ちましたか?

解決

変数 test_html に次のhtmlコンテンツがあるとします:

<html>
<head><title>Test title</title></head>
<body>
<p>Some paragraph</p>
Useless Text
<a href="http://stackoverflow.com">Some link</a>not a link
<a href="http://python.org">Another link</a>
</body></html>

これを行うだけです:

from BeautifulSoup import BeautifulSoup

test_html = load_html_from_above()
soup = BeautifulSoup(test_html)

for t in soup.findAll(text=True):
    text = unicode(t)
    for vowel in u'aeiou':
        text = text.replace(vowel, u'') 
    t.replaceWith(text)

print soup

印刷されるもの:

<html>
<head><title>Tst ttl</title></head>
<body>
<p>Sm prgrph</p>
Uslss Txt
<a href="http://stackoverflow.com">Sm lnk</a>nt  lnk
<a href="http://python.org">Anthr lnk</a>
</body></html>

タグと属性は変更されていないことに注意してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top