微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 在replaceWith()不起作用后的find()(使用BeautifulSoup)

请考虑以下 python会话:
>>> from BeautifulSoup import BeautifulSoup
>>> s = BeautifulSoup("<p>This <i>is</i> a <i>test</i>.</p>"); myi = s.find("i")
>>> myi.replaceWith(BeautifulSoup("was"))
>>> s.find("i")
>>> s = BeautifulSoup("<p>This <i>is</i> a <i>test</i>.</p>"); myi = s.find("i")
>>> myi.replaceWith("was")
>>> s.find("i")
<i>test</i>

请注意第4行后s.find(“i”)的缺失输出

这是什么原因?有解决方法吗?

编辑:实际上,该示例未演示usecase,它是:

myi.replaceWith(BeautifulSoup("wa<b>s</b>"))

每当插入的部分包含非常重要的HTML代码时,我都不会看到如何用其他东西替换这种语法.只是拥有

myi.replaceWith("wa<b>s</b>")

将替换实体的html特殊字符.

解决方法

更简单的答案:在你调用replaceWith之后,通过调用s = BeautifulSoup(s.renderContents())来重新生成和清理s.然后你可以找到.

原文地址:https://www.jb51.cc/python/186682.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐