Frage

ich einen Code bin zu schaffen, Image des URLs von allen Web-Seiten bekommt, ist der Code in Python und verwendet BeutifulSoup und httplib2. Wenn ich den Code ausführen, bekomme ich die nächsten Fehler:

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

Kann mir jemand erklären, wie sie zu beheben oder eine Ausnahme für den Fehler machen

War es hilfreich?

Lösung

Um diesen Fehler zu fangen gesagt, ändern Sie den Code wie folgt aussehen:

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

except HTMLParseError:
    #Do something intelligent here

Hier einige weitere Lesung zu Pythons Versuch außer Blöcke: http://docs.python.org/tutorial/errors.html

Andere Tipps

Sind Sie neueste Version von BeautifulSoup mit?
Dies scheint ein bekanntes Problem der Version 3.1.x, weil es mit einem neuen Parser (HTMLParser, statt SGMLParser) gestartet, das bei der Verarbeitung fehlerhafte HTML viel schlimmer ist. Sie können weitere Informationen zu diesem auf BeautifulSoup Website finden.
Als schnelle Lösung, können Sie einfach eine ältere Version verwenden ( 3.0.7a ).

Ich hat diesen Fehler, wenn ich die Saite hatte = & in meinem HTML-Dokument. Wenn ich diese Zeichenfolge ersetzt (in meinem Fall mit = und ) dann nicht mehr ich erhielt die Parsing-Fehler.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top