2016-03-19 16 views
4

美しいスープからすべてのHTMLタグのリストを取得しようとしています。美味しいスープですべてのHTMLタグを取得

私はすべてを見つけるが、私は検索する前にタグの名前を知っている必要があります。

html = """<div>something</div> 
<div>something else</div> 
<div class='magical'>hi there</div> 
<p>ok</p>""" 

私は

list_of_tags = ["<div>", "<div>", "<div class='magical'>", "<p>"] 

のようなリストになるだろうどのように私は正規表現でこれを行う方法を知っているが、BS4

答えて

13

あなたを学ぶことを試みているようなテキストがある場合find_all()に引数を指定する必要はありません。この場合、BeautifulSoupはツリー内のすべてのタグを再帰的に見つけます。サンプル:

>>> from bs4 import BeautifulSoup 
>>> 
>>> html = """<div>something</div> 
... <div>something else</div> 
... <div class='magical'>hi there</div> 
... <p>ok</p>""" 
>>> soup = BeautifulSoup(html, "html.parser") 
>>> [tag.name for tag in soup.find_all()] 
[u'div', u'div', u'div', u'p'] 
>>> [str(tag) for tag in soup.find_all()] 
['<div>something</div>', '<div>something else</div>', '<div class="magical">hi there</div>', '<p>ok</p>'] 
関連する問題