2012-04-27 116 views
1

Hello :)在玩了一下之後,我想出了以下函數,它返回完整的HTML標籤,而不是簡單的倒轉零件< > 「這個」 <>(python)使用美麗的湯解析某些HTML輸出標籤

from BeautifulSoup import BeautifulSoup 
from urllib2 import urlopen 

def get_wotd(): 
    return str((BeautifulSoup(urlopen('http://www.reference.com/wordoftheday'))).findAll('h2')) 

print get_wotd() 

今天的話,比如是 「NOSH」。而不是領:

[<h2 class="me">nosh</h2>] 

我需要的輸出是,簡單地說,

nosh 

任何人有任何想法我怎麼能拉這一關?

回答

1

使用.text屬性獲取內部文本,並使用find()方法來代替:

>>> from BeautifulSoup import BeautifulSoup 
>>> from urllib2 import urlopen 
>>> soup = BeautifulSoup(urlopen('http://www.reference.com/wordoftheday')) 
>>> soup.find('h2').text 
u'nosh' 
1

使用lxml代替BeautifulSoup的:

>>> from lxml.html import parse 
>>> tree = parse("http://www.reference.com/wordoftheday") 
>>> tree.xpath("//h2")[0].text 
'nosh' 
+0

之所以使用lxml的很簡單:我沒有看起來,BeautifulSoup安裝在我的Mac上。 – Kimvais 2012-04-27 12:33:14