これはWebマイニングスクリプトです。未処理のURLエラーの処理
def printer(q,missing):
while 1:
tmpurl=q.get()
try:
image=urllib2.urlopen(tmpurl).read()
except httplib.HTTPException:
missing.put(tmpurl)
continue
wf=open(tmpurl[-35:]+".jpg","wb")
wf.write(image)
wf.close()
q
は、URLからなるQueue()
と `欠落は、10件のスレッドによって並列に実行エラー調達-のURL
を収集する空のキューです。
と私はこれを実行するたびに、私はこれを持っています。
File "C:\Python27\lib\socket.py", line 351, in read
data = self._sock.recv(rbufsize)
File "C:\Python27\lib\httplib.py", line 541, in read
return self._read_chunked(amt)
File "C:\Python27\lib\httplib.py", line 592, in _read_chunked
value.append(self._safe_read(amt))
File "C:\Python27\lib\httplib.py", line 649, in _safe_read
raise IncompleteRead(''.join(s), amt)
IncompleteRead: IncompleteRead(5274 bytes read, 2918 more expected)
が、私はexcept
を使用するのです... 私は
..
image=urllib2.urlopen(tmpurl,timeout=999999).read()
が、これのどれもが作業していない、でも
httplib.IncompleteRead
urllib2.URLError
のような何か他のものを試してみましたIncompleteRead
とURLError
をキャッチするには?
ビットが遅くなりますが、最初はGoogleでヒットしました。 Sooo、http://stackoverflow.com/a/14206036/1444854はあなたの問題を解決するはずです。ところで、一般に、複数の例外をキャッチしたい場合は、それらをタプルに入れます:except(httplib.IncompleteRead、urllib2.URLError) –