2012-04-27 100 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