質問

私はURLを開く:

site = urllib2.urlopen('http://google.com')

そして、私は何をしたいのプロキシと同じように接続しています 私はどこか私に言ってしまった。

site = urllib2.urlopen('http://google.com', proxies={'http':'127.0.0.1'})

が、それはどちらか動作しませんでした。

私はurllib2のプロキシハンドラのようなものを持って知っているが、私はその関数を呼び出すことはできません。

役に立ちましたか?

解決

proxy = urllib2.ProxyHandler({'http': '127.0.0.1'})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
urllib2.urlopen('http://www.google.com')

他のヒント

あなたがにproxyHandlerをインストールする必要があります。

urllib2.install_opener(
    urllib2.build_opener(
        urllib2.ProxyHandler({'http': '127.0.0.1'})
    )
)
urllib2.urlopen('http://www.google.com')

あなたは環境変数を使用してプロキシを設定することができます。

import os
os.environ['http_proxy'] = '127.0.0.1'
os.environ['https_proxy'] = '127.0.0.1'

urllib2は自動的にこの方法をプロキシハンドラを追加します。あなたは以下を参照してください、それ以外の場合は、(プロキシを介して行っていないという点で)失敗します別途異なるプロトコルのためのプロキシを設定する必要があります。

proxy = urllib2.ProxyHandler({'http': '127.0.0.1'})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
urllib2.urlopen('http://www.google.com')
# next line will fail (will not go through the proxy) (https)
urllib2.urlopen('https://www.google.com')

の代わりに

proxy = urllib2.ProxyHandler({
    'http': '127.0.0.1',
    'https': '127.0.0.1'
})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
# this way both http and https requests go through the proxy
urllib2.urlopen('http://www.google.com')
urllib2.urlopen('https://www.google.com')

デフォルトのシステム・プロキシ(例えばhttp_support環境変数から)、(グローバルurllib2の中にそれをインストールせずに)現在の要求のために、次の作品を使用するに

url = 'http://www.example.com/'
proxy = urllib2.ProxyHandler()
opener = urllib2.build_opener(proxy)
in_ = opener.open(url)
in_.read()

受け入れ答えに加えて: マイザ・スクリプトは私にエラーを与えた。

File "c:\Python23\lib\urllib2.py", line 580, in proxy_open
    if '@' in host:
TypeError: iterable argument required

ソリューションは、httpを追加しました://プロキシ文字列の前に:

proxy = urllib2.ProxyHandler({'http': 'http://proxy.xy.z:8080'})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
urllib2.urlopen('http://www.google.com')
私たちはプロキシを使用してWebページにアクセスしたい場合は、

1つはまたの要求を使用することができます。 Pythonの3のコード:

>>> import requests
>>> url = 'http://www.google.com'
>>> proxy = '169.50.87.252:80'
>>> requests.get(url, proxies={"http":proxy})
<Response [200]>

複数のプロキシを添加することもできる。

>>> proxy1 = '169.50.87.252:80'
>>> proxy2 = '89.34.97.132:8080'
>>> requests.get(url, proxies={"http":proxy1,"http":proxy2})
<Response [200]>

また、コマンド・ライン・セッションのためのプロキシを設定します あなたが

あなたのスクリプトを実行したい場合がありますコマンドラインを開き
netsh winhttp set proxy YourProxySERVER:yourProxyPORT

その端末でスクリプトを実行します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top