BeautifulSoup - 如何单独查找特定的类名

2024-01-01

如何找到li带有特定类名而不是其他类名的标签?例如:

...
<li> no wanted </li>
<li class="a"> not his one </li>
<li class="a z"> neither this one </li>
<li class="b z"> neither this one </li>
<li class="c z"> neither this one </li>
...
<li class="z"> I WANT THIS ONLY ONE</li>
...

代码:

bs4.find_all ('li', class_='z')返回多个条目,其中有一个"z"和另一个类名。

如何查找带有类名的条目"z", 独自的 ?


您可以使用CSS 选择器 https://www.crummy.com/software/BeautifulSoup/bs4/doc/#css-selectors以匹配确切的类名称。

html = '''<li> no wanted </li>
<li class="a"> not his one </li>
<li class="a z"> neither this one </li>
<li class="b z"> neither this one </li>
<li class="c z"> neither this one </li>
<li class="z"> I WANT THIS ONLY ONE</li>'''

soup = BeautifulSoup(html, 'lxml')

tags = soup.select('li[class="z"]')
print(tags)

使用以下方法可以获得相同的结果lambda:

tags = soup.find_all(lambda tag: tag.name == 'li' and tag.get('class') == ['z'])

Output:

[<li class="z"> I WANT THIS ONLY ONE</li>]

看一下多值属性 https://www.crummy.com/software/BeautifulSoup/bs4/doc/#multi-valued-attributes。你就会明白为什么class_='z'匹配所有具有的标签z在他们的班级名称中。

HTML 4 定义了一些可以有多个值的属性。 HTML 5 删除了其中一些,但又定义了一些。最常见的多值属性是class(也就是说,一个标签可以有多个 CSS 类)。其他包括rel, rev, accept-charset, headers, and accesskey。 Beautiful Soup 将多值属性的值呈现为列表:

css_soup = BeautifulSoup('<p class="body"></p>')
css_soup.p['class']
# ["body"]

css_soup = BeautifulSoup('<p class="body strikeout"></p>')
css_soup.p['class']
# ["body", "strikeout"]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BeautifulSoup - 如何单独查找特定的类名 的相关文章

  • 尽管极其懒惰,但如何在 Python 中模拟 IMAP 服务器?

    我很好奇是否有一种简单的方法来模拟 IMAP 服务器 例如imaplib模块 在Python中 without做很多工作 是否有预先存在的解决方案 理想情况下 我可以连接到现有的 IMAP 服务器 进行转储 并让模拟服务器在真实的邮箱 电子
  • Python、Tkinter、更改标签颜色

    有没有一种简单的方法来更改按钮中文本的颜色 I use button text input text here 更改按下后按钮文本的内容 是否存在类似的颜色变化 button color red Use the foreground设置按钮
  • InterfaceError:连接已关闭(使用 django + celery + Scrapy)

    当我在 Celery 任务中使用 Scrapy 解析函数 有时可能需要 10 分钟 时 我得到了这个信息 我用 姜戈 1 6 5 django celery 3 1 16 芹菜 3 1 16 psycopg2 2 5 5 我也使用了psyc
  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • 如何使用固定的 pandas 数据框进行动态 matplotlib 绘图?

    我有一个名为的数据框benchmark returns and strategy returns 两者具有相同的时间跨度 我想找到一种方法以漂亮的动画风格绘制数据点 以便它显示逐渐加载的所有点 我知道有一个matplotlib animat
  • Pycharm Python 控制台不打印输出

    我有一个从 Pycharm python 控制台调用的函数 但没有显示输出 In 2 def problem1 6 for i in range 1 101 2 print i end In 3 problem1 6 In 4 另一方面 像
  • 如何在Windows上模拟socket.socketpair

    标准Python函数套接字 套接字对 https docs python org 3 library socket html socket socketpair不幸的是 它在 Windows 上不可用 从 Python 3 4 1 开始 我
  • 安装后 Anaconda 提示损坏

    我刚刚安装张量流GPU创建单独的后环境按照以下指示here https github com antoniosehk keras tensorflow windows installation 但是 安装后当我关闭提示窗口并打开新航站楼弹出
  • 从 scikit-learn 导入 make_blobs [重复]

    这个问题在这里已经有答案了 我收到下一个警告 D Programming Python ML venv lib site packages sklearn utils deprecation py 77 DeprecationWarning
  • python pandas 中的双端队列

    我正在使用Python的deque 实现一个简单的循环缓冲区 from collections import deque import numpy as np test sequence np array range 100 2 resha
  • python 集合可以包含的值的数量是否有限制?

    我正在尝试使用 python 设置作为 mysql 表中 ids 的过滤器 python集存储了所有要过滤的id 现在大约有30000个 这个数字会随着时间的推移慢慢增长 我担心python集的最大容量 它可以包含的元素数量有限制吗 您最大
  • Python:字符串不会转换为浮点数[重复]

    这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
  • Python:尝试检查有效的电话号码

    我正在尝试编写一个接受以下格式的电话号码的程序XXX XXX XXXX并将条目中的任何字母翻译为其相应的数字 现在我有了这个 如果启动不正确 它将允许您重新输入正确的数字 然后它会翻译输入的原始数字 我该如何解决 def main phon
  • 循环中断打破tqdm

    下面的简单代码使用tqdm https github com tqdm tqdm在循环迭代时显示进度条 import tqdm for f in tqdm tqdm range 100000000 if f gt 100000000 4 b
  • 如何将 PIL 图像转换为 NumPy 数组?

    如何转换 PILImage来回转换为 NumPy 数组 这样我就可以比 PIL 进行更快的像素级转换PixelAccess允许 我可以通过以下方式将其转换为 NumPy 数组 pic Image open foo jpg pix numpy
  • 在Python中重置生成器对象

    我有一个由多个yield 返回的生成器对象 准备调用该生成器是相当耗时的操作 这就是为什么我想多次重复使用生成器 y FunctionWithYield for x in y print x here must be something t
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 使用基于正则表达式的部分匹配来选择 Pandas 数据帧的子数据帧

    我有一个 Pandas 数据框 它有两列 一列 进程参数 列 包含字符串 另一列 值 列 包含相应的浮点值 我需要过滤出部分匹配列 过程参数 中的一组键的子数据帧 并提取与这些键匹配的数据帧的两列 df pd DataFrame Proce
  • 在 Python 类中动态定义实例字段

    我是 Python 新手 主要从事 Java 编程 我目前正在思考Python中的类是如何实例化的 我明白那个 init 就像Java中的构造函数 然而 有时 python 类没有 init 方法 在这种情况下我假设有一个默认构造函数 就像

随机推荐

  • Windows Phone 8.1 设备 (Lumia 930) 和 VS2013 调试仅适用于禁用 WiFi

    当 Windows Phone 8 1 应用程序启动进行部署和调试时 VS2013 中出现错误 错误 1 错误 DEP6100 发生以下意外错误 在 boostrapping 阶段 连接到设备 SmartDeviceException 部署
  • Flutter 自动完成功能在 VSCode 中不适用于包

    我将整个 flutter 项目移动到一个新文件夹 一切运行正常 自动完成功能适用于 flutter 中的构建文件 例如 Container Column 但是当我尝试使用包 例如提供者 时 我需要进入 pub dev 页面并复制导入 手动导
  • word2vec - 什么是最好的?添加、连接或平均词向量?

    我正在研究循环语言模型 为了学习可用于初始化语言模型的词嵌入 我使用 gensim 的 word2vec 模型 训练后 word2vec 模型为词汇表中的每个单词保存两个向量 单词嵌入 输入 隐藏矩阵的行 和上下文嵌入 隐藏 输出矩阵的列
  • Hadoop集群节点数

    我正在尝试设置 Hadoop 多节点集群 当我启动集群时 这是我在控制台中的响应 hduser hadoop master usr local hadoop usr local hadoop sbin start dfs sh Starti
  • Base64 图像上传到 S3 时损坏

    router post image multipartMiddleware function req res var file name req body name var data req body data return s3fsImp
  • 如何验证空手道 BDD 响应中收到的日期

    我的响应中有两个字段 响应中有两个参数 日期1 2018年12月18日 日期2 2018年11月23日 我想测试 id date1 是否小于今天的日期 并且 date2 小于请求参数中的某个其他日期 我不知道如何在空手道模式验证中执行此操作
  • 浮动操作按钮阻止其他组件

    谷歌的新材料设计建议使用浮动操作按钮来吸引用户注意屏幕上的主要操作 列表视图中有很多这样的例子 现在 假设您的列表视图有足够的项目来填满屏幕 从而无法滚动 如果您的列表项具有用户可以与之交互的某个组件 例如开关或最喜欢的星星 则浮动操作按钮
  • 如何将大型 JSON 文件分割成块并使用 GSON 进行排序

    我有一个巨大的 JSON 文件 名为 Something json 文件大小为 20 MB 我正在用 GSON 读这篇文章 它可以在标准 Android Nexus 5X 上读取 Json 示例 country UA name Hurzuf
  • 在Python中进行刷新时如何防止BrokenPipeError?

    问 有没有办法使用flush True为了print 函数没有得到BrokenPipeError https docs python org 3 library exceptions html BrokenPipeError 我有一个脚本p
  • 如何提示用户保存自动 Excel 文件

    我已经搜索过 但我发现没有任何内容直接符合我要查找的内容 或者也许我的搜索没有符合单词组合 在 C 中 我使用 Interop Excel 创建了一个 Excel 工作表 在其中插入一些数据并创建一个图表 当我执行 xlWorkBook S
  • std::tuple 和 std::pair 支持聚合初始化吗?

    聚合初始化 http en cppreference com w cpp language aggregate initialization除其他外还需要没有用户提供的构造函数 But std tuple and std pair对有一大套
  • 将 html 表单中的空字符串更新为 NULL

    我正在 Laravel 中构建一个网站 我在 InnoDB 表之间设置了外键约束 我的问题是 如果我不在选择框中选择值 框架会尝试在表中插入或更新带有 空字符串 的记录 这会导致 MySQL 错误 因为它无法在子表中找到等效的外键值 除了检
  • 适用于 iOS 的 .NET 单元测试运行器

    有没有人写过 或了解 net 单元测试运行程序 优先选择NUnit http www nunit org 运行oniOS 还是我必须自己动手 我的目标是在模拟器或设备上执行单元测试 到目前为止 我已经看到了不少关于模拟 monotouch
  • 是否可以创建一个控制台窗口(由 AllocConsole 创建)作为 GUI 子窗口?如果是这样,怎么办?

    我想在我的 WPF 应用程序中包含控制台窗口功能 用于多种目的 包括 屏幕记录 显示应用程序执行的控制台命令的结果 诊断 我使用过的两种技术是 创建一个TextBox并设置其Text通过赋值或数据绑定来获取属性 这很好地将视图集成到应用程序
  • Php CLI 脚本忽略内存限制,在数量远低于限制时崩溃

    由于某种原因 我的 PHP 脚本之一忽略了 php ini 内存限制或 ini set 当我执行 print r ini get all 时 它显示全局内存限制设置为 100M 并且是本地的 当我的脚本因致命错误而终止时 内存不足 已分配
  • iOS Swift - CLGeocodercompletionHandler 块

    我正在尝试将位置 CLLocation 解析为字符串 func locationToString currentLocation CLLocation gt String var whatToReturn String CLGeocoder
  • 如何检查列表中的所有数字是否都在稳定增长?

    我有几个不同长度的列表 其中包含简单的正整数 例如 2 4 1 3 我想检查列表排序后所有数字是否相互跟随 这意味着顺序本身并不重要 但不允许有间隙 2 4 1 3 是正确的 2 4 1 5 不正确 在我开始重新发明轮子之前 我想知道是否有
  • 什么是堆栈跟踪? [复制]

    这个问题在这里已经有答案了 可能的重复 CallStack 决定你下一步要去哪里 https stackoverflow com questions 6595473 callstack determines where you are go
  • 有效国际手机号码的正则表达式[重复]

    这个问题在这里已经有答案了 我使用 Clickatell 向客户的手机发送短信 是否有适用于所有有效手机号码的标准化正则表达式 例如 27 123 4567 我会自己推出 但我担心会错过一个晦涩的 有效的电话号码格式 从输入中删除除 和数字
  • BeautifulSoup - 如何单独查找特定的类名

    如何找到li带有特定类名而不是其他类名的标签 例如 li no wanted li li class a not his one li li class a z neither this one li li class b z neithe