当前位置: 首页 > 面试题库 >

如何使用Beautiful Soup查找具有自定义html属性的所有元素,而不管html标签如何?

封昊天
2023-03-14
问题内容

在两种情况下,我想使用自定义html属性刮取html标签。这是html的示例。如何使用自定义属性“ limit”刮擦所有元素。

<div class="names" limit="10">Bar</div> 
<div id="30" limit="20">Foo</div> 
<li limit="x">Baz</li>

第二种情况相似,但所有html标记都相同

<div class="names" limit="10">Bar</div> 
<div class="names" limit="20">Bar</div> 
<div class="names" limit="30">Bar</div>

我的问题不同于如何仅查找具有特定属性的标签-
BeautifulSoup,因为后者针对具有特定标签的属性值,而我的问题仅查找与标签或值无关的属性


问题答案:
soup.find_all(attrs={"limit":True})

# Second case:
soup.find_all("div", attrs={"limit":True})

参考:

  • http://www.crummy.com/software/BeautifulSoup/bs4/doc/#kwargs
  • http://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-all

如果您的属性名称既不与Python关键字也不与soup.find_allargs冲突,则语法更简单:

soup.find_all(id=True)


 类似资料:
  • 问题内容: 如何使用BeautifulSoup搜索仅包含我要搜索的属性的标签? 例如,我要查找所有标签。 如下代码: 获取我想要的所有数据,还获取具有该属性的所有标签 我也试过了: 这什么也不返回(可能是由于正则表达式不好) 我想知道在BeautifulSoup中是否有一种方法可以说“查找唯一属性为”的标签 *例如,如果HTML文档包含以下标记,则为 *UPDATE : 我只希望第一个标签()返回

  • 问题内容: 我需要JavaScript代码来遍历HTML元素中的填充属性。 这个ref表示我可以通过索引访问它,但是没有指定它是否受良好支持并且可以使用(跨浏览器)。 还是其他方式?(不使用任何框架,例如jQuery / Prototype) 问题答案: 这将在IE,Firefox和Chrome中运行(有人可以测试其他人吗?—谢谢@Bryan): 编辑:IE迭代有问题的DOM对象支持的 所有 属性

  • 我正在尝试使用Javascript选择此复选框 下面的代码可以工作,但并不理想 我试过这些 但它们并不起作用。有什么想法能让这件事成功吗? 数据值未硬编码的更新代码

  • 在试图找出如何定位一组特定的Web元素时,我遇到了这个问题,我想知道我是否可以做同样的操作,只是它只给我包含特定属性的后代元素。 为了澄清,我知道我可能能够过滤它,但我正在寻找一种不过滤的方法。 此外,我使用的是java,作为web驱动程序,我使用的是chrome驱动程序(我使用Selenium来实现这一点,我不知道这是否明显,因为这是我迄今为止学习的唯一web控制工具……) 感谢前面的回答!

  • 问题内容: 在我的html中,我很好奇使用唯一标识符(例如 保存图片)而不是语义是否正确。例如: 是否优先拥有: 与CSS: 而不是:我目前有: 与CSS: 唯一标识符的使用在语义上是否正确? 问题答案: 最好避免使用自定义标签,因为您永远不知道这些标签何时会标准化,并在将来有特殊用途。 如果要避免使用标头标记,对于您的示例最好的操作如下: 此外: 如果在设计页面时不使用标准html标记,则在禁用

  • 问题内容: 请考虑以下代码: 如何选择具有属性的所有标签? 谢谢 问题答案: 使用“具有属性”选择器: 或选择一个该属性具有特定值的属性: “属性值起始于”,“属性值包含”等还有其他选择器。