Обработка IncompleteRead,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представляет собой Queue(), состоящий из URL-адресов, а `отсутствует, это пустая очередь для сбора ошибок -, вызывающая -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?

7
задан shx2 16 December 2013 в 13:27
поделиться