以下代碼用於從url中取回圖像失敗。 由於某種原因,它會拋出一個KeyboardInterrupt(???),它會拋出我的腳本,即使我用try-catch將其包圍。urlgrabber發生錯誤
>>> import urlgrabber
>>> urlgrabber.urlgrab('http://upload.wikimedia.org/wikipedia/en/thumb/e/e0/Passion_Flower.JPG/220px-Passion_Flower.JPG', filename='/home/eran/a.tmp', timeout = 2, retry = 2, reget = 'simple')
這將創建以下跟蹤:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/urlgrabber/grabber.py", line 1098, in _hdr_retrieve
self.size = int(length)
ValueError: invalid literal for int() with base 10: 'Age, Content-Length, Date, X-Cache, X-Varnish\r\n'
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/urlgrabber/grabber.py", line 1098, in _hdr_retrieve
self.size = int(length)
ValueError: invalid literal for int() with base 10: 'Age, Content-Length, Date, X-Cache, X-Varnish\r\n'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/urlgrabber/grabber.py", line 612, in urlgrab
return default_grabber.urlgrab(url, filename, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/urlgrabber/grabber.py", line 976, in urlgrab
return self._retry(opts, retryfunc, url, filename)
File "/usr/local/lib/python2.7/dist-packages/urlgrabber/grabber.py", line 880, in _retry
r = apply(func, (opts,) + args, {})
File "/usr/local/lib/python2.7/dist-packages/urlgrabber/grabber.py", line 962, in retryfunc
fo = PyCurlFileObject(url, filename, opts)
File "/usr/local/lib/python2.7/dist-packages/urlgrabber/grabber.py", line 1056, in __init__
self._do_open()
File "/usr/local/lib/python2.7/dist-packages/urlgrabber/grabber.py", line 1308, in _do_open
self._do_grab()
File "/usr/local/lib/python2.7/dist-packages/urlgrabber/grabber.py", line 1438, in _do_grab
self._do_perform()
File "/usr/local/lib/python2.7/dist-packages/urlgrabber/grabber.py", line 1244, in _do_perform
raise KeyboardInterrupt
KeyboardInterrupt
https://github.com/henrysher/urlgrabber/blob/master/urlgrabber/grabber.py#L1527 < - 請參閱 – vaultah
的評論如果您只是想下載一個jpg'urllib.urlretrieve('http://upload.wikimedia.org/wikipedia/en/thumb/e/e0/Passion_Flower.JPG/220px-Passion_Flower.JPG', filename ='/ home/my.jpg')'會爲你做 –