2016-05-18 3 views
1

Я хотел бы удалить script и noscript теги под заданным тегом (узлом).Unwrapped теги все еще там

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

for s in node.stripped_strings: 
    print s 

Но выше цикл будет по-прежнему печатать содержимое script тегов.

Где ошибка?

ответ

2

Вы используете неправильный метод, вы можете использовать метод decompose(), чтобы сделать это, особенно, если вам не нужно возвращать тег или строку, которую вы хотите удалить.

Tag.decompose() удаляет тег из дерева, а затем полностью уничтожает его и его содержимое.

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

Вам нужен extract() method вместо:

PageElement.extract() удаляет тег или строку из дерева.

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