<!-- Top Plans & Programs: Most Common User Phrases - List Bucket 6 -->
<div><span id="company">Apple</span> Chats:</div>
<div>abcdefg<span>xvfdadsad</span>sdfsdfsdf</div>
<div>
<li>(<span>7</span>sadsafasf<span>vdvdsfdsfds</span></li>
<li>(<span>8</span>) <span>Reim</span></li>
</div>
<!-- Ad -->
<a href="#">
我想使用bs4删除两条注释行之间的所有内容,并将该文件变成如下内容:
<!-- Top Plans & Programs: Most Common User Phrases - List Bucket 6 -->
<!-- Ad -->
<a href="#">
可以使用^{} 方法删除} ,
div
。由于注释的类型为^{BeautifulSoup
不会看到它们,因此find_all()
div:输出:
首先,要小心断章取义的HTML片段。如果打印soupified代码段,您将获得:
Whoops BS在
<html>
标记上方添加了注释,很明显,作为删除两个标记之间元素的算法,您的意图不会不可避免地删除整个文档(这就是为什么包含代码很重要…)对于主任务,
element.decompose()
或element.extract()
将它从树中删除(extract()
返回它,次要的细微之处)。漫游中要删除的元素需要保存在单独的列表中,并在遍历结束后删除输出:
请注意,如果结束注释与开始注释不在同一级别,这将销毁结束注释的所有父元素。如果您不想这样做,则需要沿着父链往回走,直到到达起始注释的级别
使用
.find
和.next
的另一个解决方案(与上面的导入/HTML字符串/输出相同):相关问题 更多 >
编程相关推荐