Comment puis-je bande les balises de commentaires HTML à l'aide de BeautifulSoup?

J'ai été jouer avec BeautifulSoup, ce qui est excellent. Mon objectif final est d'essayer et obtenir tout le texte à partir d'une page. Je suis juste essayer d'obtenir le texte de corps, avec un cas particulier pour obtenir le titre et/ou les attributs alt de <a> ou <img> balises.

Pour l'instant j'ai ce EDITED & UPDATED CURRENT CODE:

soup = BeautifulSoup(page)
comments = soup.findAll(text=lambda text:isinstance(text, Comment))
[comment.extract() for comment in comments]
page = ''.join(soup.findAll(text=True))
page = ' '.join(page.split())
print page

1) Que suggérez-vous de la meilleure façon, pour mon cas particulier de ne PAS exclure les attributs des deux balises que j'ai énumérés ci-dessus? Si elle est trop complexe pour ce faire, il n'est pas aussi important que de faire #2.

2) je voudrais bande<!-- --> balises et tout entre les deux. Comment pourrais-je aller à ce sujet?

QUESTION EDIT @jathanism: Voici quelques balises de commentaire que j'ai essayé à la bande, mais rester, même si j'utilise votre exemple

<!-- Begin function popUp(URL) { day = new Date(); id = day.getTime(); eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=300,height=330,left = 774,top = 518');"); } // End -->
<!-- var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgDown:"SpryAssets/SpryMenuBarDownHover.gif", imgRight:"SpryAssets/SpryMenuBarRightHover.gif"}); //--> <!-- var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgDown:"SpryAssets/SpryMenuBarDownHover.gif", imgRight:"SpryAssets/SpryMenuBarRightHover.gif"}); //--> <!-- var whichlink=0 var whichimage=0 var blenddelay=(ie)? document.images.slide.filters[0].duration*1000 : 0 function slideit(){ if (!document.images) return if (ie) document.images.slide.filters[0].apply() document.images.slide.src=imageholder[whichimage].src if (ie) document.images.slide.filters[0].play() whichlink=whichimage whichimage=(whichimage<slideimages.length-1)? whichimage+1 : 0 setTimeout("slideit()",slidespeed+blenddelay) } slideit() //-->
Est-il un document source que vous utilisez comme un cas de test? Il serait très utile si vous pouvez fournir quelque chose que vous avez à l'esprit, comme base de comparaison.
Source supplémentaire de jouer avec.

OriginalL'auteur Nathan | 2010-08-17