BeautifulSoup find_all() 是否保留标签顺序?

2023-11-27

我希望使用 BeautifulSoup 来解析一些 HMTL。我有一张有几行的桌子。我试图找到满足某些条件(某些属性值)的行,并稍后在我的代码中使用该行的索引。

问题是:find_all()保留它返回的结果集中的行顺序?

我在 中没有找到这个docs谷歌搜索让我只这个答案:

“BeautifulSoup 标签不会跟踪它们在页面中的顺序,不会。”

但他没有透露他从哪里得到这些信息。

我很高兴得到答案,但更高兴的是指向一些解释这一点的文档。

编辑:dstudeba 向我指出了这个“解决方法”的方向next_sibling.

from bs4 import BeautifulSoup
soup = BeautifulSoup(open('./mytable.html'), 'html.parser')
row = soup.find('tr', {'class':'something', 'someattr':'somevalue'})
myvalues = []
while True:
    cell = row.find('td', {'someattr':'cellspecificvalue'})
    myvalues.append(cell.get_text())
    row = row.find_next_sibling('tr', {'class':'something', 'someattr':'somevalue'})
    if not row:
        break

这会按照它们在 html 文件中出现的顺序获取我需要的单元格内容。

但是我仍然想知道在 BeautifulSoup 文档中我可以找到是否find_all()是否保留秩序。这就是为什么我不接受 dstudeba 的答案。 (我的赞成票没有显示,还没有足够的代表:P)


我的经验是find_all确实维持秩序。但是为了确保您可以使用find_all_next方法使用了find_next方法将保留顺序。这是一个链接到文档。

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

BeautifulSoup find_all() 是否保留标签顺序? 的相关文章

随机推荐

  • R:因子水平,将其余部分重新编码为“其他”

    我很少使用因子 通常认为它们是可以理解的 但我经常对特定操作的细节感到模糊 目前 我正在将很少观察到的类别编码 折叠到 其他 中 并正在寻找一种快速的方法来做到这一点 我有一个变量的大约 20 个级别 但有兴趣将其中一堆折叠为一个 data
  • django 中的完全外连接

    如何使用 django QuerySet API 创建跨 M2M 关系的完整外部联接的查询 如果不支持 欢迎一些有关创建我自己的经理来执行此操作的提示 编辑添加 S 洛特 感谢您的启发 对 OUTER JOIN 的需求来自于应用程序 它必须
  • 如何创建具有多种视图类型的RecyclerView

    From 使用 RecyclerView 创建动态列表 当我们创建一个RecyclerView Adapter我们必须指定ViewHolder将与适配器绑定 public class MyAdapter extends RecyclerVi
  • 读取JRT后如何释放所有资源?

    我正在尝试使用中描述的方法读取给定 Java 9 安装中可用的模块列表 给定其 Java Home 如何提取文件 jre 9 lib modules 该解决方案有效 但分配用于读取 Java 运行时映像内容的资源似乎永远不会释放 从而导致内
  • 生成由文件输入在特定时间选择的视频文件的缩略图/快照

    如何抓取通过以下方式选择的视频文件的快照
  • 如何在asp.net中的gridview中创建链接

    我正在尝试创建一个具有网格视图的网页 这个 gridview 应该有一个如下所示的链接 http localhost Test aspx code 123 当用户单击 gridview 中的某一行链接时 它将打开一个空白页面并显示一些结果
  • 如何在 ASP.NET Core 3.1 中实现自定义 ValidateAntiforgeryTokenAuthorizationFilter

    我想实现一个过滤器 当身份验证令牌身份验证时 该过滤器会跳过防伪令牌的验证 Bearer 用来 在 ASP NET Core 2 2 中ValidateAntiforgeryTokenAuthorizationFilter and Auto
  • 如何使用 @IfProfileValue 来测试配置文件是否处于活动状态?

    如此令人困惑 IfProfileValue与以下无关 Profile or ActiveProfiles Profile测试配置文件是否处于活动状态 ActiveProfiles将它们设置为活动状态 并且 IfProfileValue允许你
  • 调用 reloadRowsAtIndexPaths 删除 tableView contentOffset

    每当我打电话 reloadRowsAtIndexPaths 我的 UITableView contentOffset 被删除 是否有一个委托方法可以用来捕获表视图更新并再次设置偏移量 以便它保持在原位并且不会动画进入视图 或者只是阻止它这样
  • ASP.NET - 如何仅在尚未包含 CSS 的情况下包含 CSS?

    我使用下面的代码动态包含 CSS 文件 HtmlHead head HtmlHead Page Header HtmlLink link new HtmlLink link Attributes Add href Page ResolveC
  • 分析 .Net 线程争用

    是否有任何工具可用于分析 Net 线程争用 我为运行缓慢的 Windows 服务添加了线程性能计数器 它显示了大约 150 个线程争用 我想分析一下代码的哪个区域造成了如此多的线程争用 有没有可用的工具可以引导我进入正确的代码块 Visua
  • ReactJS 和自动对焦

    我有一个react bootstrap模态与
  • 查看/记录浏览器正在执行哪个 JavaScript 函数

    有没有一种方法 附加组件我每次都可以使用any例如 javascript 函数在 Firefox 中执行 函数名称将被打印 到控制台或任何地方 这是因为我无法找到 很难找到 当我单击下拉菜单时执行哪个函数 所以我希望 firefox add
  • Windows 2008:虚拟文件系统(如 FUSE)[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在寻找适用于 Windows 的虚拟文件系统 例如适用于 Unix 的 FUSE 有什么建议吗 我看过dokan 旧港fifs并且回调文件系统但
  • “Hello Android”教程出现问题

    我对 Eclipse 和 Android 很陌生 但对 Java 有点熟悉 话虽如此 我尝试使用最新的 Eclipse Galieo 和 2 1 Android SDK 来遵循开发人员网站上的 Hello Android 教程 我使用的是运
  • 为什么 Python 哈希列表不使用 ID?

    在Python中使用字典时 以下情况是不可能的 d d 1 2 3 4 since list is an unhashable type 但是 那idPython 中的函数返回一个对象的整数 该整数保证在该对象的生命周期内是唯一的 为什么P
  • 强制包的函数使用用户提供的函数

    我遇到了问题MNP我追踪到一个不幸的调用的包deparse 其最大宽度限制为 500 个字符 背景 无聊时可以轻松跳过 Because mnp使用有点特殊的语法来允许不同的选择集 您包括cbind choiceA choiceB 在公式定义
  • Python:从命名空间中提取变量

    我在 python 中使用 argparse 来解析命令行参数 parser ArgumentParser parser add argument a parser add argument b parser add argument c
  • 如何在列表视图中添加EditText并在所有行中动态获取其值?

    我在 listView 中有 Checkbox 和 EditText 以及 Textview 它从列表中获取文本视图的值 复选框将被动态选中 以同样的方式 EditText也可以动态输入 现在我的问题是 当我在编辑文本中输入文本后滚动列表视
  • BeautifulSoup find_all() 是否保留标签顺序?

    我希望使用 BeautifulSoup 来解析一些 HMTL 我有一张有几行的桌子 我试图找到满足某些条件 某些属性值 的行 并稍后在我的代码中使用该行的索引 问题是 find all 保留它返回的结果集中的行顺序 我在 中没有找到这个do