Как я могу использовать SOCKS 4/5 прокси с urllib2 для загрузки веб-страницы?
Вы можете использовать SocksiPy модуль. Просто скопируйте файл "socks.py" в каталог lib/site-packages вашего Python, и вы готовы к работе.
Вы должны использовать socks перед urllib2. (Попробуйте pip install PySocks
)
Например:
import socks
import socket
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 8080)
socket.socket = socks.socksocket
import urllib2
print urllib2.urlopen('http://www.google.com').read()
Вы также можете попробовать pycurl lib и tsocks, для более подробной информации нажмите здесь.
Поскольку SOCKS является прокси-сервером на уровне сокета, вам необходимо заменить объект сокета, используемый urllib2
. Обратите внимание на это решение. Если исправления обезьяны вам недостаточно, вы можете попробовать создать подкласс или скопировать-изменить код из стандартной библиотеки urllib2
.