-1

私は非常に単純な問題を抱えていますが、これについて具体的に何も見ていないことに本当に驚いています。Python3を使用して、プロキシサーバー(認証を必要としない)を通過するWebサーバーでホストされているファイルをコピーするためのベストプラクティスに従おうとしています。

私はpython 2.5を使用して同様のことを行いましたが、ここでは本当に不足しています。これを、このネットワーク上の将来のスクリプトで再利用できる関数にしようとしています。提供できる支援をいただければ幸いです。

私の問題は、プロキシの使用を組み込む方法(認証なし)に関する明確なドキュメントなしで、urllib.requestまたはhttp.clientを使用しようとすることにあると感じています。

私はここを見て、髪を抜いてきました... http://docs.python.org/3.1/library/urllib.request.html#urllib.request.ProxyHandler http://docs.python.org/3.1 /library/http.client.html http://diveintopython3.org/http-web-services.html

このstackoverflowの記事でさえ: Proxy with urllib2

しかしpython3ではurllib2は非推奨です...

4

1 に答える 1

1

以下は、http プロキシ経由でファイルを取得する関数です。

import urllib.request

def retrieve( url, filename ):
    proxy = urllib.request.ProxyHandler( {'http': '127.0.0.1'} )
    opener = urllib.request.build_opener( proxy )
    remote = opener.open( url )
    local = open( filename, 'wb' )
    data = remote.read(100)
    while data:
        local.write(data)
        data = remote.read(100)
    local.close()
    remote.close()

(エラー処理は読者の課題として残されています...)

複数のファイルを取得する必要がある場合に備えて、後で使用するために最終的にオープナー オブジェクトを保存できます。コンテンツはそのままファイルに書き込まれますが、複雑なエンコーディングが使用されている場合は、デコードする必要がある場合があります。

于 2009-11-23T19:59:32.277 に答える