77

私は次のURLを開きます:

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

そして、私がやりたいのは、どこかで私に言っているプロキシと同じ方法で接続することです。

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

しかし、それもうまくいきませんでした。

urllib2にプロキシハンドラーのようなものがあることは知っていますが、その関数を思い出せません。

4

7 に答える 7

142
proxy = urllib2.ProxyHandler({'http': '127.0.0.1'})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
urllib2.urlopen('http://www.google.com')
于 2009-09-20T02:49:35.757 に答える
18

ProxyHandlerをインストールする必要があります

urllib2.install_opener(
    urllib2.build_opener(
        urllib2.ProxyHandler({'http': '127.0.0.1'})
    )
)
urllib2.urlopen('http://www.google.com')
于 2009-09-20T02:34:39.623 に答える
12

環境変数を使用してプロキシを設定できます。

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')
于 2013-11-07T18:03:36.440 に答える
7

デフォルトのシステムプロキシ(たとえば、http_support環境変数から)を使用するには、現在のリクエストに対して次のように機能します(urllib2にグローバルにインストールする必要はありません)。

url = 'http://www.example.com/'
proxy = urllib2.ProxyHandler()
opener = urllib2.build_opener(proxy)
in_ = opener.open(url)
in_.read()
于 2012-03-16T14:55:23.300 に答える
3

受け入れられた答えに加えて:私のsciptは私にエラーを与えました

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')
于 2014-10-08T09:48:21.763 に答える
3

プロキシを使用してWebページにアクセスする場合は、リクエストを使用することもできます。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]>
于 2016-07-03T10:19:37.413 に答える
0

さらに、コマンドラインセッションのプロキシを設定しますスクリプトを実行する可能性のあるコマンドラインを開きます

netsh winhttp set proxy YourProxySERVER:yourProxyPORT

そのターミナルでスクリプトを実行します。

于 2016-04-25T08:09:21.520 に答える