2009-07-08 12 views
1

私は、任意のWebページから画像のURLを取得するコードを作成しています。コードは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 

誰かが見えるようにコードを変更、特にそのエラーをキャッチするには、エラー

+0

コードを投稿できますか?ダウンロードしたHTMLコードを見ることができますか?結局のところ私たちは全世界ではありません。 – Ber

+1

行942の列118のHTMLは何ですか?それは不正な形式ですか? –

答えて

2

ためexeptionを修正または作成する方法を私に説明することができますこの:

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

except HTMLParseError: 
    #Do something intelligent here 

ここでブロックを除いて、Pythonの試みのいくつかのより多くの読書です: http://docs.python.org/tutorial/errors.html

4

はありますあなたはBeautifulSoupの最新バージョンを使用していますか?
不正な形式のHTMLを処理する際に非常に悪い新しいパーサー(SGMLParserの代わりにHTMLParser)を使用し始めたので、これはバージョン3.1.xの既知の問題です。これに関する詳細はBeautifulSoup websiteにあります。
簡単な解決策として、古いバージョン(3.0.7a)を使用するだけです。

0

私のHTML文書に文字列= &があると、そのエラーが発生しました。その文字列(私の場合は=と)を置き換えたとき、私はもはやその解析エラーを受け取りませんでした。

関連する問題