我创建获取图像的网址,从任何网页代码,该代码是在Python和使用BeutifulSoup和httplib2的。 当我运行的代码,我得到了一个错误:

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

有人能解释我如何解决或进行exeption用于误差

有帮助吗?

解决方案

要赶上错误。特别是,改变你的代码看起来像这样:

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

except HTMLParseError:
    #Do something intelligent here

下面是Python的试块,除了一些比较阅读: http://docs.python.org/tutorial/errors.html

其他提示

您使用最新版本的BeautifulSoup的?结果 这似乎3.1.X版本的一个已知的问题,因为它开始使用新的解析器(的HTMLParser,而不是SGMLParser中),这是在处理畸形HTML更糟。你可以找到关于这个在 BeautifulSoup网站更多的信息。点击 作为一个快速的解决方案,你可以简单地使用旧版本(的 3.0.7a )。

我得到的错误,当我在我的HTML文档中有字符串 = 。当我替换该字符串(在我的情况与的 =和),那么我不再接收到解析错误。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top