recuperar contenido html
"Antonio Reyes" <[email protected]>
| Newsgroups | gmane.comp.python.general.castellano |
|---|---|
| Message-ID | <op.u15tlhrrdptvz5@nlel> |
El Martes, 20 de Octubre de 2009 22:43:58 Luis Miguel Morillas escribió: > 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/art > icle_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? >> Por lo que se ve, hay que relacionar la puntuación con los comentarios. >> Heprobado un poco y lo he conseguido con el '..' de XPath para subir un >> nivel: >> 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"//div[@class='commentBody']/..") >> for c in comentarios: >> score=unicode(c.xml_select(u"//span[@class='score']")[0])) >> if u'Funny' in score or u'Insightful' in score: >> comment=unicode(c.div[1]) >> print score, comment He estado haciendo pruebas con este código pero hay un error en él. Explico, recupera el comentario etiquetado como 'Funny' pero además recupera los hijos de ese comentario y los considera como si también tuvieran esa etiqueta. Por ejemplo, en el archivo de prueba, el score "Funny" aparece sólo en 8 comentarios pero al ejecutar el script recupera 415 comentarios que no tienen ese score pero que dependen de estos 8. Cómo se podría solucionar esto? -- 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