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

如何使用BeautifulSoup更改标签名称?

江宏放
2023-03-14
问题内容

我正在使用python + BeautifulSoup解析HTML文档。

现在,我需要用替换<h2 class="someclass">HTML文档中的所有元素<h1 class="someclass">

如何更改标签名称,而不更改文档中的其他任何内容?


问题答案:

我不知道您的访问方式,tag但以下内容对我有用:

import BeautifulSoup

if __name__ == "__main__":
    data = """
<html>
<h2 class='someclass'>some title</h2>
<ul>
   <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
   <li>Aliquam tincidunt mauris eu risus.</li>
   <li>Vestibulum auctor dapibus neque.</li>
</ul>
</html>

    """
    soup = BeautifulSoup.BeautifulSoup(data)
    h2 = soup.find('h2')
    h2.name = 'h1'
    print soup

print soup命令输出为:

<html>
<h1 class='someclass'>some title</h1>
<ul>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
<li>Vestibulum auctor dapibus neque.</li>
</ul>
</html>

如您所见,h2变成了h1文件中的其他内容都没有改变。我正在使用Python 2.6和BeautifulSoup 3.2.0。

如果您有多个,h2并且想要全部更改,则可以执行以下操作:

soup = BeautifulSoup.BeautifulSoup(your_data)
while True: 
    h2 = soup.find('h2')
    if not h2:
        break
    h2.name = 'h1'


 类似资料:
  • 问题内容: 我尝试了soup.find(’!-‘),但似乎没有用。提前致谢。 编辑:感谢您有关如何查找所有评论的提示。我有一个后续问题。如何专门搜索评论? 例如,我有以下注释标记: 我真的只想要这些东西。“ 110518”是我要用作搜索目标的日期YYMMDD。但是,我不知道如何在特定的注释标签中找到某些内容。 问题答案: Pyparsing允许您使用内置表达式搜索HTML注释,并附加解析时回调以验

  • 问题内容: 我一直在玩BeautifulSoup,这很棒。我的最终目标是尝试仅从页面获取文本。我只是想从正文中获取文本,有一种特殊情况是从或标签中获取标题和/或alt属性。 到目前为止,我有这个: 1)对于我的特殊情况,您如何建议不从上面列出的两个标签中排除这些属性的最佳方法?如果执行此操作太复杂,则它不如#2重要。 2)我想剥离标签以及标签之间的所有内容。我该怎么办? @jathanism:以下

  • 问题内容: 我可以使用BS轻松遍历通用标签,但是我不知道如何查找特定标签。例如,我怎么能找到所有的出现?BS可以吗? 问题答案: 以下应该工作 有两种搜索标签的方法。 http://www.crummy.com/software/BeautifulSoup/documentation.html 有关更多文本的理解和使用 http://lxml.de/elementsoup.html

  • 问题内容: 我正在抓取页面,并从该页面上的表中获取所有元素,如下所示: 输出: 现在,我试图获取标签的样式,但是我不知道如何。例如,如果我这样做: 它显然只是打印东西。我想我大概可以做这样的事情,比如,但一切到目前为止,我已经尝试并没有带来我想要的东西。 问题答案: 只需使用以下属性即可访问: 如果您只想要具有样式属性an的tr标记来获取全部标记: 或使用CSS选择器: 使用您的实际网址:

  • 问题内容: 该问题特定于BeautifulSoup4,这使其与之前的问题有所不同: 为什么BeautifulSoup修改我的自闭元素? 既然不见了(以前的xml解析器),我如何才能尊重新的自动关闭标签?例如: 不会自动关闭标签,但会提示。bs4指的是这个树生成器,我如何自动关闭标签? 问题答案: 要解析XML,请将“ xml”作为第二个参数传递给BeautifulSoup构造函数。 您需要安装lx

  • 在我的flutter应用程序中,我使用google_sign_in firebase通过用户的google帐户来验证用户。我不希望我的用户看到如下图所示的面板:(它有flutter标志和我的项目名称!但我想把应用程序的标志和一个定制的名称代替。)