Re: recuperar contenido html
Luis Miguel Morillas <[email protected]>
| Newsgroups | gmane.comp.python.general.castellano |
|---|---|
| Message-ID | <[email protected]> |
El día 20 de octubre de 2009 21:56, Antonio Reyes <[email protected]> escribió: > Hola de nuevo, > Gracias a los que han contestado a mi pregunta pero creo que estaba un poco > vaga porque apenas estoy empezando con esto de la programación y con python. > > En fin, he estado intentado resolver mi problema pero sigo teniendo > dificultades; las planteo ahora de forma más ordenada. > > Dado un conjunto de archivos html, quiero recuperar una parte de su > contenido sólo si una de sus etiquetas contiene cierta condición. > > Un ejemplo de los archivos html que estoy trabajando es 'article_i.html' en: > http://nlel.areyesp77.operaunite.com/file_sharing/ > > ó desde la página donde se obtuvieron: > > http://linux.slashdot.org/story/09/10/20/137241/Deadline-Scheduling-Proposed-For-the-Linux-Kernel?art_pos=2 > > Como se darán cuenta, son comentarios de un tema específico, de los cuales > algunos tienen una etiqueta "score:número" = string > > Yo estoy interesado en recuperar el comentario sólo si su score es igual a > "Funny" ó "Insightful", por ejemplo. > > He estado tratando con BeautifulSoup pero no logro aún relacionar el score > con el comentario, y en consecuencia no lo logro extraer. Aedmás, para > obtener el string de score estoy usando un código como el de abajo pero es > un problema porque el 'comment_score_' no es igual en todos los comentarios. > Bueno, si alguno de ustedes me puede orientar se lo agradecería. > > > doc = open("/001/article_3.html") > > soup = BeautifulSoup(doc) > soup.prettify() > > content = soup.findAll("div",{"class":"commentBody"}) > #print content > > score = soup.findAll("span",{"id": "comment_score_14467215"}) ## > if 'Insightful' in str(score): > print content > else: > print '%%%%%' > > La solución más rápida es la siguiente. Usa amara2 (easy_install amara) from amara.bindery import html doc = html.parse(r'http://nlel.areyesp77.operaunite.com/file_sharing/content/article_1.html') comentarios = doc.xml_select(u"//span[@class='score']") for c in comentarios: texto_comentario = unicode(c) if 'Funny' in texto_comentario or 'Insightful' in texto_comentario: print texto_comentario # haz aquí lo que consideres con el comentario. Es esto lo que necesitas? Saludos, -- lm > -- > Usando el novísimo cliente de correo de Opera: http://www.opera.com/mail/ > > _______________________________________________ > Lista de correo Python-es > http://listas.aditel.org/listinfo/python-es > FAQ: http://listas.aditel.org/faqpyes > _______________________________________________ Lista de correo Python-es http://listas.aditel.org/listinfo/python-es FAQ: http://listas.aditel.org/faqpyes