美丽的汤 - 在原始文本中查找已识别的标签

时间:2013-05-09 09:13:51

标签: python beautifulsoup

在确定原始文档中的文字后,我需要操作HTML文档中的某些文字。假设我有这个HTML代码

<div id="identifier">
    <a href="link" id="linkid">
    </a>
</div>

我想删除id标记中的<a>属性。我可以使用BeautifulSoup识别特定标签,但因为它改变了原始文档的格式,我也无法搜索/替换字符串。我不想只写出BeautifulSoup的输出,而是想在原始文档中标识<a href="link" id="linkid">标记,并仅用<a href="link">替换。知道怎么办吗?

回答几个问题:

  1. 这是一个庞大的现有代码库,需要进行一些更新,所以它不仅仅是一种搜索/替换工作。

  2. 原始格式很重要,因为组织遵循格式化代码的某些编码标准,我想保留这些标准。此外,BS为了完整性而引入额外的标签,例如等等。

1 个答案:

答案 0 :(得分:0)

您使用的是哪个版本的beautifulsoup? 您可以在bs4

中编辑字典等html节点

来自文档: http://www.crummy.com/software/BeautifulSoup/bs4/doc/#changing-tag-names-and-attributes

soup = BeautifulSoup('<b class="boldest">Extremely bold</b>')
tag = soup.b

del tag['class']
del tag['id']

另外,你似乎对美丽的汤输出修改后的html代码的方式有问题。 如果您想要打印文档,或使用自定义格式,您可以轻松完成

http://www.crummy.com/software/BeautifulSoup/bs4/doc/#output