(python)使用漂亮的汤解析某些HTML输出标签

时间:2012-04-27 12:25:23

标签: python parsing beautifulsoup

你好:)在玩了一下后,我想出了以下函数,它返回完整的HTML标记,而不是简单的倒置部分&lt; &gt;“this”&lt; < / EM>&GT;

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

任何人都知道如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

使用lxml代替BeautifulSoup:

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

答案 1 :(得分: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'