2012-07-13 96 views
0

我有一個HTML文件說:如何提取python中的屬性值?

<html>... 
    <li id="123"></li> 
    <li id="3455"></li> 
    .... 
</html> 

我怎麼使用BeautifulSoup了獨自一人的ID在python的價值? 所需的輸出是:["123","3455"]

回答

2

爲了得到你想要的清單,使用list comprehension。它可以在一行完成如下(最後一行):

html = '<html> <li id="123"></li><li id="3455"></li> </html>' 
soup = BeautifulSoup(html) 

attrs = [li['id'] for li in soup.find_all('li')] 
+0

謝謝,這就是我一直在尋找。 – abhixec 2012-07-13 23:52:57

+0

不客氣@Abhinav - 我看到了你的編輯,但'find_all'是BeautifulSoup的當前語法,而BS3則是findAll,但它也適用於BS 4。 – Ansari 2012-07-14 00:12:56

+0

好的!我使用bs3我猜...所以它不適合我,很高興知道這一點。 – abhixec 2012-07-16 16:37:03

0
from BeautifulSoup import BeautifulSoup 

foo = '<html> <li id="123"> </li> <li id="3455"></li> </html>' 

soup = BeautifulSoup(foo) 

for id in soup.html.findAll('li'): 
    print id['id']