beautifulsoup - 出现错误 AttributeError:ResultSet 对象没有属性“find_all”
问题描述
嗨,我正在尝试找出分页内容下的所有链接以及已经提取的分页部分代码。但是当我试图捕获所有列表项时,我收到以下错误:
AttributeError:ResultSet 对象没有属性“find_all”。您可能将元素列表视为单个元素。当您打算调用 find() 时,您是否调用了 find_all()?
import requests
from bs4 import BeautifulSoup
url = "https://scrapingclub.com/exercise/list_basic/"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
pages = soup.find_all('ul', class_='pagination')
links = pages.find_all('a', class_='page-link')
print(links)
我不理解 AttributeError 一词:ResultSet 对象没有属性“find_all”。任何人都可以检查我所缺少的。
解决方案
问题是您不能调用.find_all()
或.find()
在第一次调用返回的 ResultSet 上.find_all()
。
此示例将打印来自以下位置的所有链接pagination
:
import requests
from bs4 import BeautifulSoup
url = "https://scrapingclub.com/exercise/list_basic/"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
pages = soup.find('ul', class_='pagination') # <-- .find() to return only one element
for link in pages.find_all('a', class_='page-link'): # <-- find_all() to return list of elements
print(link)
印刷:
<a class="page-link" href="?page=2">2</a>
<a class="page-link" href="?page=3">3</a>
<a class="page-link" href="?page=4">4</a>
<a class="page-link" href="?page=5">5</a>
<a class="page-link" href="?page=6">6</a>
<a class="page-link" href="?page=7">7</a>
<a class="page-link" href="?page=2">Next</a>
推荐阅读
- python - 如何完全删除 tkinter 图标
- android - Android - 如何下载向下滚动时出现的 URL 的 http 内容?
- javascript - 多个时间间隔的jquery图像滑块
- angular - 用Angular 7中注入的html绑定一个函数
- matlab - 画一条不连续的线
- html - Gmail Android 和 iOS 应用程序。从 MS Outlook 发送时 CSS 样式(td 和 p 元素)不起作用
- php - 如何保存在多个表中 Laravel
- html - 如何在绝对位置父级上设置子级高度
- python - 在 aiohttp.ClientSession.get() 中接收“RuntimeError: Session is closed”,即使在创建新的上下文管理器之后
- vue.js - Vue.js 环境配置