這是一個網頁挖掘腳本。處理不完整的閱讀,URLError
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()
和`缺少的是一個空隊列來收集錯誤認識的URL
它並聯由10個線程中運行。
每次我運行這個,我得到了這個。
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
... 我嘗試別的東西像
httplib.IncompleteRead
urllib2.URLError
甚至,
image=urllib2.urlopen(tmpurl,timeout=999999).read()
但沒有這是工作..
我怎樣才能趕上IncompleteRead
和URLError
?
位晚了,但首次在谷歌。 Sooo,http://stackoverflow.com/a/14206036/1444854應該可以解決你的問題。順便說一下,通常如果你想捕捉多個異常,把它們放在一個元組中:除了(httplib.IncompleteRead,urllib2.URLError) – 2014-02-12 16:28:33