10

Pythonを使用してHTTPリクエストを作成しようとしています。Windowsシステムプロキシを変更してみました(を使用してinetcpl.cpl

url = 'http://www.whatismyip.com'
request = urllib2.Request(url)
request.add_header('Cache-Control','max-age=0')
request.set_proxy('127.0.0.1:9050', 'socks')
response = urllib2.urlopen(request)
response.read()

私にエラーを与えています

トレースバック(最後の最後の呼び出し):ファイル ""、1行目、応答= urllib2.urlopen(request)ファイル "C:\ Python27 \ lib \ urllib2.py"、126行目、urlopen return _opener.open(url、 data、timeout)ファイル "C:\ Python27 \ lib \ urllib2.py"、行400、オープンレスポンス= self._open(req、data)ファイル "C:\ Python27 \ lib \ urllib2.py"、行423、 in _open'unknown_open'、req)ファイル "C:\ Python27 \ lib \ urllib2.py"、行378、in _call_chain result = func(* args)ファイル "C:\ Python27 \ lib \ urllib2.py"、行1240 、unknown_openでURLError('unknown url type:%s'%type)を発生させますURLError:

4

2 に答える 2

13

私はOPです。Tishoの回答によると、これは私にとってはうまくいきました。

import urllib, urllib2

##Download SocksiPy - A Python SOCKS client module. ( http://code.google.com/p/socksipy-branch/downloads/list )
##Simply copy the file "socks.py" to your Python's lib/site-packages directory, and initiate a socks socket like this.
## NOTE: you must use socks before urllib2.
import socks
import socket
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050)
socket.socket = socks.socksocket

url = 'http://ifconfig.me/ip'
request = urllib2.Request(url)
request.add_header('Cache-Control','max-age=0')
response = urllib2.urlopen(request)
print response.read()
于 2012-06-10T11:06:35.793 に答える
4

URLLIB2はプロキシタイプとしてSOCKSをサポートしていないようです(ここで説明されているように:urllib2でSOCKS 4/5プロキシを使用するにはどうすればよいですか?)。urllib + socksの例については、http: //code.google.com/p/socksipy-branch/を参照してください。

于 2012-06-10T09:43:46.267 に答える