来自find_all的BeautifulSoup get_text

时间:2014-02-24 19:51:56

标签: python beautifulsoup urllib

这是我第一次使用网页抓取工作。到目前为止,我能够导航并找到我想要的HTML部分。我也可以打印出来。问题是只打印文本,这将无法正常工作。我在尝试时遇到以下错误:AttributeError: 'ResultSet' object has no attribute 'get_text'

这是我的代码:

from bs4 import BeautifulSoup
import urllib

page = urllib.urlopen('some url')


soup = BeautifulSoup(page)
zeug = soup.find_all('div', attrs={'class': 'fm_linkeSpalte'}).get_text()


print zeug

3 个答案:

答案 0 :(得分:11)

find_all()返回一个元素数组。您应该浏览所有这些并选择您需要的那个。而不是致电get_text()

<强> UPD
例如:

    for el in soup.find_all('div', attrs={'class': 'fm_linkeSpalte'}):
        print el.get_text()

但请注意,您可能有多个元素。

答案 1 :(得分:0)

我将关闭该问题以将其复制,然后将您链接到另一个,我发现它回答了这个问题,但是我认为我没有适当的声誉...所以...

Original Answer

此代码:

for el in soup.findAll('div', attrs={'class': 'fm_linkeSpalte'}):
    print ''.join(el.findAll(text=True))

如果国防部想结束这个问题,那将是有帮助的。

答案 2 :(得分:0)

尝试在列表内的for中获取数据,如下所示:

zeug = [x.get_text() for x in soup.find_all('div', attrs={'class': 'fm_linkeSpalte'})]