来自 find_all 的 BeautifulSoup get_text
Posted
技术标签:
【中文标题】来自 find_all 的 BeautifulSoup get_text【英文标题】:BeautifulSoup get_text from find_all 【发布时间】: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
【问题讨论】:
【参考方案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
在每次迭代中都包含其中一个。以上是关于来自 find_all 的 BeautifulSoup get_text的主要内容,如果未能解决你的问题,请参考以下文章
BeautifulSoup 中“findAll”和“find_all”的区别
美汤python中的find()和find_all()有啥区别?
美丽的汤:“ResultSet”对象没有“find_all”属性?