Как сделать HTTP-запрос через прокси-сервер (tor) с помощью python?

Я пытаюсь сделать HTTP-запрос с помощью python. Я попытался изменить свой прокси-сервер 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, в     response = urllib2.urlopen(request) Файл" C:\Python27\lib\urllib2.py ", строка 126, в urlopen     return _opener.open(url, data, timeout) Файл" C:\Python27\lib\urllib2.py ", строка 400, открыта     response = self._open (req, data) Файл" C:\Python27\lib\urllib2.py ", строка 423, в файле _open     'unknown_open', req) Файл" C:\Python27\lib\urllib2.py ", строка 378, в _call_chain     result = func (* args) Файл" C:\Python27\lib\urllib2.py", строка 1240, в файле unknown_open     raise URLError ('неизвестный тип url:% s'% type) URLError:

Ответ 1

Я OP. Согласно ответу Тишо, это сработало для меня:

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 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()