He estado jugando con BeautifulSoup, que es genial. Mi objetivo final es intentar obtener el texto de una página. Solo estoy tratando de obtener el texto del cuerpo, con un caso especial para obtener los atributos de título y/o alt de las etiquetas <a>
o <img>
.¿Cómo puedo quitar etiquetas de comentarios de HTML usando BeautifulSoup?
hasta ahora tengo este 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) ¿Qué sugiere la mejor manera para que mi caso especial de no excluir aquellos atributos de las dos etiquetas que se enumeran más arriba? Si es demasiado complejo para hacer esto, no es tan importante como hacer # 2.
2) Me gustaría quitar las etiquetas <!-- -->
y todo lo que hay entre ellas. ¿Cómo voy a hacer eso?
QUESTION EDIT
@jathanism: Estas son algunas de las etiquetas de comentarios que he tratado de despojar, pero siguen siendo, aun cuando utilizo el ejemplo
<!-- 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() //-->
¿Existe un documento fuente que se está utilizando como un caso de prueba? Sería de gran ayuda si pudiera proporcionar algo que tenga en mente como base de comparación. – jathanism
Fuente añadida para jugar. – Nathan