【问题标题】:BeautifulSoup get_text from find_all来自 find_all 的 BeautifulSoup get_text
【发布时间】:2014-03-26 16:41:42
【问题描述】:

这是我第一次使用网络抓取。到目前为止,我能够导航并找到我想要的 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

【问题讨论】:

    标签: python beautifulsoup urllib


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      我会关闭这个重复的问题,并将你链接到另一个我发现可以回答这个问题的问题,但我认为我不具备缓和所需的声誉......所以......

      Original Answer

      代码:

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

      如果模组想要结束这个问题,那会很有帮助。

      【讨论】:

        【解决方案3】:

        find_all() 返回一个元素数组。您应该浏览所有这些并选择您需要的那个。然后打电话给get_text()

        UPD
        例如:

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

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

        【讨论】:

        • 什么是“el”,该如何定义?
        • @user193938 在for循环中定义,find_all返回一个元素数组,所以el在每次迭代中都包含其中一个。
        猜你喜欢
        • 2019-12-20
        • 2016-01-23
        • 1970-01-01
        • 1970-01-01
        • 2021-01-22
        • 1970-01-01
        • 2015-12-27
        • 1970-01-01
        • 2016-05-09
        相关资源
        最近更新 更多