2010-10-06 30 views
7

J'ai un script simple où je suis en train de chercher une page HTML, en la passant à BeautifulSoup pour supprimer tous les balises de script et de style, puis je veux passer le résultat HTML à une autre méthode. Y a-t-il un moyen facile de faire ceci? Skimming the BeautifulSoup.py, je ne l'ai pas encore vu.Obtention html dépouillé de script et de balises de style avec BeautifulSoup?

soup = BeautifulSoup(html) 
for script in soup("script"): 
    soup.script.extract() 

for style in soup("style"): 
    soup.style.extract() 
contents = soup.html.contents 
text = loader.extract_text(contents) 

contents = soup.html.contents contient une liste et tout est défini dans les classes. Existe-t-il une méthode qui renvoie juste le html brut après que la soupe le manipule? Ou dois-je juste passer par la liste contents et reconstituer le html ensemble en excluant le script & étiquettes de style?

Ou y at-il une solution encore meilleure pour accomplir ce que je veux?

Répondre

8

unicode(soup) vous donne le code html.

aussi ce que vous voulez est ceci:

for elem in soup.findAll(['script', 'style']): 
    elem.extract() 
+0

Hah. si simple. Merci! – Nathan

+0

belle sopaa – Yarin