2010-11-28 14 views
0

私はマルチスレッドで画像をダウンロードしようとしていましたが、これはpythonでmax_countの制限があります。image download problem(python)

download_threadが開始されるたびに、私はそれを残して別のものをアクティブにします。ダウンロードプロセスが5秒以内に終了することを願っています。これは、5秒を超えるURL費用を開くとダウンロードが失敗することを意味します。

しかし、どのように私はそれを知って、失敗したスレッドを停止できますか?

+0

私はそれを固定した後にフォーマットを壊しました。コードは4つのスペースを字下げして表示されます( '101010'またはCtrl + Kを使用して)。 – Johnsyweb

答えて

3

使用しているPythonのバージョンを教えてください。 あなたもスニペットを投稿している可能性があります。 Python 2.6から、urllib2.urlopenにタイムアウトが追加されました。 これがあなたを助けてくれることを願っています。これはPythonのドキュメントのものです。

urllib2.urlopen(URL [データ] [、 タイムアウト])オープン 文字列または要求 オブジェクトのいずれかとすることができるURLをURL、。

警告HTTPS要求では、サーバーの 証明書の 検証は実行されません。データは に送信する追加データを指定する文字列、または が必要なデータがない場合はNoneです。現在のところ、HTTPリクエストはデータを使用する唯一のものである です。データのパラメータが の場合、HTTP リクエストは GETではなくPOSTになります。データは の標準 アプリケーション/ x-www-form-urlencoded フォーマットのバッファでなければなりません。 urllib.urlencode() 関数は、2タプルのマッピングまたはシーケンス を受け取り、 という文字列をこの形式で返します。 urllib2モジュールは、 でHTTP/1.1要求を送信します。接続:クローズヘッダが含まれています。

オプションのタイムアウトパラメータ が 接続の試みのような ブロック操作のためのタイムアウトを秒単位で指定します(指定されていない場合は、 設定 グローバルなデフォルトのタイムアウトが使用されます)。これは実際には のみがHTTP、HTTPS、およびFTP用に動作します。 接続。 )(リダイレクトが 情報を追跡したかどうかを決定する一般的 に使用取得 リソースのURLを返す -

のgetURL():

この関数は2つのメソッドを持つファイル類似 オブジェクトを返します - 形式のmimetools.Messageインスタンス (HTTPヘッダーのクイックリファレンスを参照)に、ヘッダーなどのページのメタ情報 を返します。 エラー時にURLErrorを発生させます。何 ハンドラがリクエストを処理していない場合( デフォルトはグローバル なるOpenerDirectorはこれが起こることはありません確実 にUnknownHandlerを使用してインストールしても)Noneを返すことができることを

は注意してください。

さらに、既定でインストールされている ProxyHandlerは、 という要求が、 が設定されているときにプロキシを介して処理されるようにします。

バージョン2.6で変更されました:タイムアウトは が追加されました。

+0

ありがとうございました!!!後で試してみて、必要に応じてスニペットを投稿します。 –

+0

タイムアウトを使用して、私が望む結果を得ようとしました。ところで、それはとても簡単ですが、私はとても感謝しています。 –

+0

確かに.. Pythonはプログラミングを楽しくします;;) – aNish