【问题标题】:How can I remove all the tags in a beautiful object without remove specific tags like <strong> or <em>?如何在不删除 <strong> 或 <em> 等特定标签的情况下删除漂亮对象中的所有标签?
【发布时间】:2021-03-13 04:02:54
【问题描述】:

鉴于以下 html,我如何删除 BeautifulSoup 中的所有标签,除了风格标签,如 &lt;strong&gt;&lt;em&gt;

<ol class="journal">
<li>A. Gilad Kusne, Heshan Yu, Changming Wu, Huairuo Zhang, Jason Hattrick-Simpers, Brian 
DeCost, Suchismita Sarker, Corey Oses, Cormac Toher, Stefano Curtarolo, Albert V. Davydov, 
Ritesh Agarwal, Leonid A. Bendersky, Mo Li, Apurva Mehta, Ichiro Takeuchi. <strong>On-the-fly 
closed-loop materials discovery via Bayesian active learning</strong>. <em>Nature Communications</em>, 2020; 11 (1) DOI: <a href="http://dx.doi.org/10.1038/s41467-020-19597-w" rel="nofollow" target="_blank">10.1038/s41467-020-19597-w</a>
</li>
</ol>

我知道我可以使用正则表达式来删除特定的标签,但是有什么优雅的方法可以删除一些标签,同时在 BeautifulSoup 中排除其他标签?

【问题讨论】:

    标签: python beautifulsoup tags


    【解决方案1】:

    使用soup.descendants

    [node for node in soup.descendants if node.name in ['strong','em']]
    

    【讨论】:

    • 感谢您的回答。但我不想提取它们。我想删除所有标签,除了这些。使用“.text”方法删除所有标签。我想要类似“文本”方法的东西,它可以排除一些标签。
    猜你喜欢
    • 1970-01-01
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 1970-01-01
    • 2013-07-30
    相关资源
    最近更新 更多