यह वेब खनन स्क्रिप्ट का एक टुकड़ा है।हैंडलिंग इनकंपलेट रीड, 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()
Urls से बना है और `लापता त्रुटि को ऊपर उठाने-यूआरएल
यह 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
कैसे पकड़ सकता हूं ?
देर से बिट, लेकिन पहले Google पर मारा। Sooo, http://stackoverflow.com/a/14206036/1444854 आपकी समस्याओं का समाधान करना चाहिए। वैसे, आम तौर पर यदि आप कई अपवादों को पकड़ना चाहते हैं, तो उन्हें एक टुपल में रखें: सिवाय इसके कि (httplib.IncompleteRead, urllib2.URLError) –