AttributeError: ResultSet object has no attribute 'text'. You're probably treating a list of elements like a single element. Did you call find_all() when you meant to call find()?
时间: 2024-02-07 19:04:14 浏览: 170
这个错误是因为您尝试在一个 ResultSet 对象上调用 `text` 属性。ResultSet 是 BeautifulSoup 中的一个对象,它是一个包含多个元素的列表。所以,当您尝试调用 `text` 属性时,Python 会抛出 AttributeError。
要解决这个问题,您需要将 ResultSet 中的每个元素都处理一遍。例如,如果您有以下 HTML 代码:
```html
<div class="content">
<p>Hello, World!</p>
</div>
<div class="content">
<p>How are you?</p>
</div>
```
您可以使用以下 Python 代码获取所有 div 中的文字:
```python
from bs4 import BeautifulSoup
html = '''
<div class="content">
<p>Hello, World!</p>
</div>
<div class="content">
<p>How are you?</p>
</div>
'''
soup = BeautifulSoup(html, 'html.parser')
divs = soup.find_all('div', class_='content')
for div in divs:
text = div.text.strip()
print(text)
```
输出:
```
Hello, World!
How are you?
```
在这个例子中,我们首先将 HTML 代码传递给 BeautifulSoup 对象,并使用 find_all 方法查找所有 class 为 "content" 的 div 标签。然后,我们遍历每个 div 标签,对每个 div 标签调用 `text` 属性,并使用 strip 方法去掉多余的空格和换行符。
阅读全文