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

如何使BeautifulSoup 4尊重自闭合标签?

杜英范
2023-03-14
问题内容

该问题特定于BeautifulSoup4,这使其与之前的问题有所不同:

为什么BeautifulSoup修改我的自闭元素?

既然BeautifulStoneSoup不见了(以前的xml解析器),我如何才能bs4尊重新的自动关闭标签?例如:

import bs4   
S = '''<foo> <bar a="3"/> </foo>'''
soup = bs4.BeautifulSoup(S, selfClosingTags=['bar'])

print soup.prettify()

不会自动关闭bar标签,但会提示。bs4指的是这个树生成器,我如何自动关闭标签?

/usr/local/lib/python2.7/dist-packages/bs4/__init__.py:112: UserWarning: BS4 does not respect the selfClosingTags argument to the BeautifulSoup constructor. The tree builder is responsible for understanding self-closing tags.
  "BS4 does not respect the selfClosingTags argument to the "
<html>
 <body>
  <foo>
   <bar a="3">
   </bar>
  </foo>
 </body>
</html>

问题答案:

要解析XML,请将“
xml”作为第二个参数传递给BeautifulSoup构造函数。

soup = bs4.BeautifulSoup(S, 'xml')

您需要安装lxml。

您无需再通过selfClosingTags

In [1]: import bs4
In [2]: S = '''<foo> <bar a="3"/> </foo>'''
In [3]: soup = bs4.BeautifulSoup(S, 'xml')
In [4]: print soup.prettify()
<?xml version="1.0" encoding="utf-8"?>
<foo>
 <bar a="3"/>
</foo>


 类似资料:
  • 染色体包含许多以不同方式生成的分数。comareTo方法实际上测试方法的一致性并相应地返回结果。 返回1:comp=-5..-1 返回 0:comp = 0(可能发生在不同的场景中,其中之一是所有分数都相等。 返回-1:comp=1..5 我的问题是,如何使这种情况符合合同为比较方规定的规则。显然,它没有,我一直得到:java.lang.IllegalArgumentException:比较方法违

  • 我刚刚读了应用程序架构指南。在这篇文章中,google演示了使用新的android架构组件构建健壮的android应用程序的基本指南。如今年的Google I/O所示,一个应用程序应该有4层: 在这种情况下,依赖关系从上到下流动,较高层只知道直接位于它们下面的组件,例如。UI控制器只知道ViewModel,ViewModel只知道存储库等。 因此,我观看了视频,完成了相应的codelabs,然后学

  • vscode 中,如何在自动格式化时,如何将标签变成自闭合标签? 如 <List></List> 变为 <List /> 如 <List><Item /></List> 不发生变化,还是 <List><Item /></List> 如 <List><Item></Item></List> 变为 <List><Item /></List> 编辑器:VS Code 语言:React + TS + TS

  • 我有两段XML,其中一部分是:

  • null null 所以我有这个标签,它当前是一个按钮。当我点击这个按钮时,它运行一个显示消息。 如何使此标记在页面打开或重新加载时自动运行。 null null

  • 我使用JSoup从html文档中提取某些标记。但是,我需要用团队创建的一些标记来更改其中的一些。 示例 检查我的标签是否需要自动关闭标签。有线索吗?谢谢