打开的标签仍在那里

时间:2016-05-18 12:11:25

标签: python beautifulsoup bs4

我想删除给定标记(节点)下的scriptnoscript标记。

for t in node.find_all(["script", "noscript"]):
    t.unwrap()

for s in node.stripped_strings:
  print s

但上述循环仍会打印script代码的内容。

错误在哪里?

2 个答案:

答案 0 :(得分:2)

您需要extract() method代替:

  

PageElement.extract()从树中删除标记或字符串。

for t in node.find_all(["script", "noscript"]):
    t.extract()

答案 1 :(得分:2)

使用错误的方法可以使用decompose()方法执行此操作,尤其是在您不需要返回要删除的标记或字符串时。

  

Tag.decompose()从树中删除标签,然后完全销毁它及其内容。

for t in node.find_all(["script", "noscript"]):
    t.decompose()