Вот лучший способ, используя механизировать библиотеку.
import mechanize
b = mechanize.Browser()
b.set_proxies({'http': 'yourproxy.corporation.com:3128' })
b.addheaders = [('User-agent', 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)')]
b.open("http://energywatch.natgrid.co.uk/EDP-PublicUI/Public/InstantaneousFlowsIntoNTS.aspx")
b.select_form(name="form1")
b.form.find_control(name='__EVENTTARGET').readonly = False
b.form['__EVENTTARGET'] = 'a1'
print b.submit().read()
Обратите внимание, как вы можете указать, что Mechanize должен использовать прокси-сервер (также возможно использование обычного urllib
). Также обратите внимание, как имитация обратной передачи JavaScript в ASP.NET.
Edit:
Если ваш прокси-сервер использует проверку подлинности NTLM, это может быть проблемой. AFAIK urllib2 не обрабатывает проверку подлинности NTLM. Вы можете попробовать NTLM Авторизационный прокси-сервер . Из файла readme :
ЧТО ТАКОЕ «Прокси-сервер авторизации NTLM»?
'NTLM Authorization Proxy Server' - это прокси-подобное программное обеспечение, которое авторизует вас
на прокси-сервере MS и на веб-серверах (особенно ISS), использующих собственный NTLM MS
метод авторизации, и он может изменить некоторые значения в заголовке запроса вашего клиента
так что эти запросы будут выглядеть как запросы, сделанные MS IE. Написано на Python
язык. См. Www.python.org.