Pregunta

Estoy creando un código que obtiene las direcciones URL de imagen de las páginas web, el código se encuentran en pitón y utilizar BeutifulSoup y httplib2. Cuando ejecuto el código, me sale el siguiente error:

Look me http://movies.nytimes.com          (this line is printed by the code)
Traceback (most recent call last):
File "main.py", line 103, in <module>
visit(initialList,profundidad)
File "main.py", line 98, in visit
visit(dodo[indice], bottom -1)
File "main.py", line 94, in visit
getImages(w)
File "main.py", line 34, in getImages
iSoupList = BeautifulSoup(response, parseOnlyThese=SoupStrainer('img'))
File "/usr/local/lib/python2.6/dist-packages/BeautifulSoup.py", line 1499, in __init__
BeautifulStoneSoup.__init__(self, *args, **kwargs)
File "/usr/local/lib/python2.6/dist-packages/BeautifulSoup.py", line 1230, in __init__
self._feed(isHTML=isHTML)
File "/usr/local/lib/python2.6/dist-packages/BeautifulSoup.py", line 1263, in _feed
self.builder.feed(markup)
File "/usr/lib/python2.6/HTMLParser.py", line 108, in feed
self.goahead(0)
File "/usr/lib/python2.6/HTMLParser.py", line 148, in goahead
k = self.parse_starttag(i)
File "/usr/lib/python2.6/HTMLParser.py", line 226, in parse_starttag
endpos = self.check_for_whole_start_tag(i)
File "/usr/lib/python2.6/HTMLParser.py", line 301, in check_for_whole_start_tag
self.error("malformed start tag")
File "/usr/lib/python2.6/HTMLParser.py", line 115, in error
raise HTMLParseError(message, self.getpos())
HTMLParser.HTMLParseError: malformed start tag, at line 942, column 118

Alguien me puede explicar cómo solucionar o hacer una excepcion para el error

¿Fue útil?

Solución

Para la captura de ese error en concreto, cambiar el código para tener este aspecto:

try:
    iSoupList = BeautifulSoup(response, parseOnlyThese=SoupStrainer('img'))

except HTMLParseError:
    #Do something intelligent here

Aquí hay un poco de lectura más en el try de Python, excepto los bloques: http://docs.python.org/tutorial/errors.html

Otros consejos

¿Está utilizando la última versión de BeautifulSoup?
Esto parece un problema conocido de la versión 3.1.x, ya que comenzó a utilizar un nuevo programa de análisis (HTMLParser, en lugar de SGMLParser) que es mucho peor en el procesamiento de HTML con formato incorrecto. Puede encontrar más información sobre esto en BeautifulSoup página web .
Como una solución rápida, sólo tiene que utilizar una versión anterior ( 3.0.7a ).

Tengo ese error cuando tuve la cadena = & en mi documento HTML. Cuando reemplacé a esa cadena (en mi caso con = y ), entonces ya no recibida que el análisis de error.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top