python - 在 python bs4.element.ResultSet 中过滤具有特定类的元素
问题描述
我们正在抓取此页面上的主表格 - https://www.metacritic.com/browse/albums/release-date/available/date?view=detailed - 我们有以下内容来抓取表格:
import requests
from bs4 import BeautifulSoup
# grab page and soup it
headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36' }
metacritic_url = 'https://www.metacritic.com/browse/albums/release-date/available/date?view=detailed'
metacritic_page = requests.get(metacritic_url, headers=headers)
metacritic_soup = BeautifulSoup(metacritic_page.text, "html.parser")
# extract scores from page
all_trs = metacritic_soup.find_all('tr')
中的所有其他tr
元素all_trs
都是空tr
的,其类为spacer
.
all_trs[0] # not empty
all_trs[1] # empty tr
类型all_trs
是bs4.element.ResultSet
。我们如何过滤以删除确实具有类的tr
元素,留下所有其他元素?all_trs
spacer
解决方案
选择时过滤
只需选择<tr>
没有class
命名的spacer
:
metacritic_soup.select('tr:not(.spacer)')
过滤结果集
如果class
namedspacer
每隔一个<tr>
就做list slicing
- 2 是间隔,每秒:
metacritic_soup.select('tr')[::2]
推荐阅读
- google-apps-script - 我可以通过自动电子邮件从 Google 表单/Google 表格发送多个上传的附件吗?
- facebook - 我想构建一个应用程序来使用 facebook 的附近朋友功能来跟踪某人的位置
- python - 根据另一列中存在的值添加一列
- python - kaggle 读取 dicom 图像错误由于格式某些图像无法读取引发异常
- r - 用数据框中所有列的不同列子集的向量填充数据框行
- postgresql - 如何从 postgresql 数据库中获取唯一值
- python - 我如何还可以检查成员是否具有特定角色是 if 语句?仅当您具有特定角色时才需要 elif 执行?
- django - Django 过滤器集和多个值
- python - openmdao 可以跨 Matlab ExternalCodeComp 计算偏导数而不显式定义它们吗?
- html - 在 Vue.js + TypeScript 中更改图像源属性