回答问题

我正在尝试使用 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()

给了我错误

Traceback(最近一次调用最后):文件“”,第 1 行,响应 u003d urllib2.urlopen(request) 文件“C:\Python27\lib\urllib2.py”,第 126 行,在 urlopen 返回 _opener.open( url,数据,超时)文件“C:\Python27\lib\urllib2.py”,第 400 行,打开响应 u003d self._open(req, data) 文件“C:\Python27\lib\urllib2.py”,第 423 行,在 _open 'unknown_open',req) 文件 "C:\Python27\lib\urllib2.py",第 378 行,在 _call_chain 结果 u003d func(*args) 文件 "C:\Python27 \lib\urllib2.py",第 1240 行,在 unknown_open 中引发 URLError('unknown url type: %s' % type) URLError:

Answers

我是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()
Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐