2010-11-28 105 views
0

我試圖用多線程下載圖像,它在python中有一個有限的max_count。圖像下載問題(python)

每次啓動download_thread時,我都會保留它並激活另一個。我希望下載過程可以以5秒結束,這意味着如果打開網址的時間超過5秒,下載失敗。

但我怎麼知道它,並停止失敗的線程?

+0

我在修復它後破壞了格式。代碼通過縮進四個空格來表示(使用`101010`按鈕或Ctrl + K)。 – Johnsyweb 2010-11-28 07:08:38

回答

3

你能告訴你正在使用哪個版本的python嗎? 也許你可能已經發布了一個片段。 從Python 2.6開始,你在urllib2.urlopen中添加了一個超時。 希望這會幫助你。它來自python文檔。

urllib2.urlopen(URL [,數據] [, 超時])打開URL鏈接,其可以 是字符串或一個請求 對象。

警告HTTPS請求不會對服務器的 證書進行任何 驗證。數據可能是一個字符串 ,指定要發送到服務器的其他數據爲 ,或者如果不需要此類數據,則不需要這種數據 。目前HTTP請求是 唯一使用數據的請求;當提供數據參數爲 時,HTTP 請求將是POST而不是 GET。數據應該是 緩衝區中的標準 application/x-www-form-urlencoded 格式。 urllib.urlencode() 函數採用2元組的映射或序列 ,並以這種格式返回 的字符串。 urllib2模塊發送 HTTP/1.1請求與 連接:包括關閉標頭。

可選超時參數 指定秒的超時爲 像 連接嘗試阻塞操作(如果未指定, 全局默認超時設置 將被使用)。這實際上只有 適用於HTTP,HTTPS和FTP 連接。

這個函數返回一個類文件 對象有兩個方法:)

的getURL( - 返回檢索的 資源,常用來 的URL確定是否重定向之後 信息() - 返回mimetools.Message實例的 表單中頁面的元信息 (如標題) (請參閱HTTP標題的快速參考) 在發生錯誤時引發URLError。

注意,無可能,如果沒有 處理程序處理請求(雖然 默認安裝全球 OpenerDirector使用UnknownHandler以 確保這永遠不會發生)返回。

另外,默認安裝了 ProxyHandler確保當 被設置時,通過代理處理請求 。

版本2.6更改:超時是 添加。

+0

非常感謝!!!我會稍後再嘗試,並在必要時發佈一個片段 – 2010-11-28 13:06:25