python - 我可以只抓取没有特定属性的元素吗?
问题描述
在 bs4 中,我想应用过滤器来抓取没有特定属性的元素。很难解释,所以考虑这个例子:
有 5 个“div”元素。其中 4 个具有“class”和“id”属性,第 5 个具有“class”、“id”和“style”属性。我只想抓取前 4 个。
我知道我可以soup.find_all('div', {'class': '<class-name>', 'id': '<id>'}
为我想要的属性应用过滤器,但我可以为我不想要的属性应用额外的过滤器。
请参阅下面的示例 HTML 代码:
解决方案
使用 CSS Selector :not()
,你可以得到这样的结果
soup.select('div:not(div[style="display: none;"])')
:not()
指示选择每个不是 div[style="display: none;"] 元素的元素
推荐阅读
- c# - 在 SSAS 表格 2017 中管理 TablePermissions 和 ColumnPermissions
- java - 地图上多个标记的实时动画
- java - 如何在创建期间调试 apache.jena.queryExecutionFactory 的 NullPointerException?
- javascript - 如何等待包含异步函数调用的 forEach 完成
- javascript - 比较运算符 false
- android - 带导航栏的键盘向上移动 framelayout
- mysql - MySQL SELECT JSON 数组中的所有 id 和子 id
- c - 枚举长度的数组大小会导致编译错误
- vue.js - VueJS在新页面中编辑表格中的数据
- python - 如何在熊猫中指定确切的列数