使用.decompose()方法后strong标签未完全移除的问题求助
解决strong标签删除不完全的问题
嘿,我一眼就瞅出你代码里的问题啦!你用的soup.find('strong')只会返回第一个匹配到的<strong>标签,之后的for循环其实是在遍历这个标签的子节点,根本没碰其他的<strong>元素——这就是为什么最后一个(甚至除了第一个之外的所有)都没被删掉的原因。
正确的解决方法有两种:
方法1:用find_all()获取所有strong标签后遍历删除
find_all('strong')会返回页面中所有的<strong>标签组成的列表,直接遍历这个列表逐个删除就好:
for strong in soup.find_all('strong'): strong.decompose()
方法2:用循环持续查找并删除,直到没有为止
如果担心遍历过程中DOM变化影响结果(其实find_all返回的是静态列表,一般不会有问题),也可以用while循环不断查找第一个strong标签并删除,直到找不到为止:
while soup.find('strong'): soup.find('strong').decompose()
这两种方法都能帮你把所有的<strong>标签彻底删掉,试试就知道啦!
内容的提问来源于stack exchange,提问作者Shai Léger
相关产品推荐
相关产品推荐

