私はBeautifuloupを使ってhtmlタグを抽出し、テキストを削除しようとしています。美しいスープ抽出タグがテキストを削除
ここ<html>
<body>
<table>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
</table>
</body>
</html>
は、私がこれまで持っているものです::
html_page = """
<html>
<body>
<table>
<tr class=tb1><td>Lorem Ipsum dolor Sit amet</td></tr>
<tr class=tb1><td>Consectetuer adipiscing elit</td></tr>
<tr><td>Aliquam Tincidunt mauris eu Risus</td></tr>
<tr><td>Vestibulum Auctor Dapibus neque</td></tr>
</table>
</body>
</html>
"""
所望の結果は次のとおりです。たとえば、このHTMLを取る=は、{}のために働く
def get_tags(soup):
copy_soup = soup
for tag in copy_soup.findAll(True):
tag.attrs = {} # removes attributes of a tag
tag.string = ''
return copy_soup
print get_tags(soup)
使用tag.attrsすべてのタグ属性を削除します。しかし、私がtag.stringまたはtag.clear()を使用しようとすると、私はちょうど<html></html>
のままになります。おそらく起こっていることは、tag.string
またはtag.clear()
を使用した最初の繰り返しで、htmlタグ内のすべてのコンテンツが削除されていることを理解しています。
これを解決する方法がわかりません。おそらく子供たちから最初に再帰的にテキストを削除するでしょうか?または、私が行方不明の簡単なアプローチがありますか?
ああは特に私の独創的なアプローチが不備た理由を正確に記述するために、説明していただきありがとうございます。 –
@ hannahbanana2.0あなたの問題を解決するより美しい方法があるかどうかを知りたいです。lxmlとlxml.objectifyを見てください.. – alecxe
@ hannahbanana2.0 btw、ここにあります代わりのアプローチを用いた[かなり関連するトピック](http://stackoverflow.com/questions/24640959/get-a-structure-of-html-code)は、ここでやっているより簡単かもしれません。 – alecxe