В Windows XP, Python 2.5 и 2.6 я тестировал следующий код:
import urllib2
proxy= urllib2.ProxyHandler({'http': '127.0.0.1:8080'})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
urllib2.urlopen('http://www.google.com/')
В приведенном выше коде я получаю исключение BadStatusLine из строки 349 httplib.py.
У меня есть прокси, работающий на 127.0.0.1:8080, который работает (я могу настроить браузер на использование его с proxyswitchy, и когда он включен, я могу получить доступ к сайтам, которые заблокированы, когда он выключен [в Китае]).
если я поменяю его на прокси socks,
proxy= urllib2.ProxyHandler({'socks': '127.0.0.1:8080'})
Тогда прокси вообще не используется.
Я получил код из вопроса на Прокси с urllib2 , и он почти такой же - что может быть не так?
Обновление: urllib2 не поддерживает прокси-носки.
В итоге все получилось с curl:
c = pycurl.Curl()
#stupid GFW
if settings.CHINA:
c.setopt(pycurl.PROXY, '127.0.0.1')
c.setopt(pycurl.PROXYPORT, 8087)
c.setopt(pycurl.PROXYTYPE, pycurl.PROXYTYPE_SOCKS5)