Question

Je crée un code qui obtient les urls d'image à partir de toutes les pages Web, le code sont en python et utiliser BeutifulSoup et httplib2. Quand je lance le code, je reçois l'erreur suivante:

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

Quelqu'un peut me expliquer comment réparer ou faire une exeption de l'erreur

Était-ce utile?

La solution

Pour rattraper cette erreur spécifique, changer votre code pour ressembler à ceci:

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

except HTMLParseError:
    #Do something intelligent here

Voici un peu plus sur la lecture de l'essai Python sauf blocs: http://docs.python.org/tutorial/errors.html

Autres conseils

Utilisez-vous dernière version de BeautifulSoup?
Cela semble un problème connu de la version 3.1.x, parce qu'il a commencé à utiliser un nouvel analyseur (HTMLParser, au lieu de SGMLParser) qui est bien pire au traitement HTML malformé. Vous pouvez trouver plus d'informations à ce sujet sur BeautifulSoup site .
En tant que solution rapide, vous pouvez simplement utiliser une version plus ancienne ( 3.0.7a ).

je suis arrivé cette erreur quand j'avais la chaîne dans mon document HTML = & . Lorsque je l'ai remplacé cette chaîne (dans mon cas avec = et ), alors je ne reçu que l'analyse syntaxique erreur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top