1. 程式人生 > >網路不穩定時python爬蟲技巧

網路不穩定時python爬蟲技巧

網路不穩定時,用爬蟲下載檔案會報ContentTooShortError,類似下面這樣:

ContentTooShortError: <urlopen error retrieval incomplete: got only 1043679 out of 1050997 bytes>

解決思路很簡單,就是捕獲異常,重新下載。但是如果重新下載的時候網路還是不穩定又遇到ContentTooShortError怎麼辦呢?答案是遞迴呼叫,反覆下載,直到能夠正常下載為止。

程式碼:

def recu_down(url,filename): # recurrent download with ContentTooShortError
    try:
        urllib.request.urlretrieve(url,filename)
    except urllib.error.ContentTooShortError:
        print ('Network conditions is not good. Reloading...')
        recu_down(url,filename)

下載的時候用這個函式替代urllib.request.urlretrieve函式就可以了。