2012-07-13 77 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']