0

有一个非常简洁的解决方案可以使用漂亮的汤显示来自 div 的文本,find这里 https://stackoverflow.com/a/8994150/1063287

result = soup.find('div', {'class' :'flagPageTitle'}).text

我想在以下场景中应用相同的逻辑:

content = original_content("div","class1 class2")

如果我将其修改为:

content = original_content("div","class1 class2").text

我收到错误:

AttributeError: 'ResultSet' object has no attribute 'text'

谁能告诉我如何使用最初显示的相同逻辑,但在我使用上述 find_all 的情况下?(注意我使用的find_all是不输入的快捷方式,请参见此处

谢谢你。

4

1 回答 1

2

直接调用元素时使用的是隐含.find_all()方法,该方法返回结果集(类似列表的对象)。使用limit不会改变返回的内容,只会返回多少。

如果要获取该集合的第一个元素,请使用切片:

original_content("div","class1 class2", limit=1)[0].text

或明确说明并.find()改用:

original_content.find("div","class1 class2").text

要获取所有匹配项的文本,您需要遍历结果集。列表理解将是最简单的:

[el.text for el in original_content("div","class1 class2")]
于 2013-04-20T10:36:47.090 回答