1

你好 :) 玩了一会儿之后,我想出了以下函数,它返回完整的 HTML 标签,而不是简单的倒置 < >"this"< >中的部分

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

有人知道我怎么能做到这一点吗?

4

2 回答 2

1

使用lxml而不是 BeautifulSoup:

>>> from lxml.html import parse
>>> tree = parse("http://www.reference.com/wordoftheday")
>>> tree.xpath("//h2")[0].text
'nosh'
于 2012-04-27T12:29:14.220 回答
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'
于 2012-04-27T12:55:53.033 回答