El día 3 de febrero de 2011 01:17, Kike Cabrera <kikeca...@gmail.com> escribió: > Hola a todos. > Estoy intentando recoger datos de una web con html.parser.HTMLParser (Python > 3.1), encuentro las etiquetas html que hay pero no soy capaz de acceder al > contenido. > Probablemente esté pasando por alto algún método de la clase para hacer > esto, o tal vez simplemente no sé hacerlo. > La clase heredada que uso: > class Parser(HTMLParser): > def __init__(self, datos): > HTMLParser.__init__(self) > self.feed(datos) > self.close() > def handle_data(self,data): > return data > def handle_comment(self, data): > return data > def handle_starttag(self, tag, attrs): > script = [] > if tag == 'script': > for i in range(len(attrs)): > if attrs[i][0]== 'type' and attrs[i][1] == > 'text/javascript': > print('Javascript encontrado') > script.append(self.get_starttag_text()) > return script > Acceso en linea de comandos: > data = Parser(html).handle_starttag('script', > ('type','text/javascript')) > Donde 'html' es una cadena utf-8 con el código fuente de la página. > Con esto último recorre la cadena y encuentra los tags que coinciden, pero > no consigo el contenido. > Creo que ando perdido en como heredo la clase, me parece que no está > completa, pero necesito más información para seguir. > También me he dado cuenta de que no me aclaro muy bien con los objetos, pero > eso creo que es caso perdido.
No conozco htmlparser. Para analizar webs uso amara (que no funciona todavía con python3.x) Un ejemplo: >>> from amara.bindery import html >>> doc = html.parse('http://python.org.ar/pyar/') >>> js = doc.xml_select(u'//script[@type="text/javascript"]') >>> for script in js: print script <!-- var search_hint = "Búsqueda"; //--> <!--// Initialize search form var f = document.getElementById('searchform'); f.getElementsByTagName('label')[0].style.display = 'none'; var e = document.getElementById('searchinput'); searchChange(e); searchBlur(e); //--> $(document).ready(function(){ $(".tweet").tweet({ username: "planetapyar", avatar_size: 32, count: 10, loading_text: "Cargando tweets..." }); }); <!--// Init menu actionsMenuInit('Más Acciones'); //--> Más doc en http://wiki.xml3k.org/Amara -- luismiguel > Gracias a todos. > > _______________________________________________ > Python-es mailing list > Python-es@python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/