[Python-es] Problemas con html.parser.HTMLParser

Kike Cabrera kikecalpe en gmail.com
Jue Feb 3 01:17:50 CET 2011


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.

Gracias a todos.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20110203/1c846756/attachment.html>


Más información sobre la lista de distribución Python-es