2016-03-19 35 views
4

Güzel çorba tüm html etiketleri bir listesini almaya çalışıyorum.Güzel Çorba ile tüm HTML etiketleri alın

Tümünü buldum ama aramadan önce etiketin adını bilmem gerekiyor.

varsa ben regex ile bunu bilen

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

gibi bir listesini almak, ama BS4

cevap

13

You öğrenmeye çalışıyorum Nasıl

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

gibi metin find_all() için herhangi bir argüman belirtmek zorunda değilsiniz - bu durumda, BeautifulSoup, yinelemeli olarak ağaçtaki her etiketi bulur. Örnek:

>>> 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>'] 
İlgili konular