2011-12-09 59 views
0

当我尝试将数据从http发布到https时,urllib2不会返回所需的https网页,而是网站要求启用cookie。python urllib2不返回https页面

要获得第一HTTP页:

proxyHandler = urllib2.ProxyHandler({'http': "http://proxy:port" }) 
    opener = urllib2.build_opener(proxyHandler) 
    opener.addheaders = [('User-agent', 'Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0')] 
    urllib2.install_opener(opener) 
    resp = urllib2.urlopen(url) 
    content = resp.read() 

当我从上面的页面和POST数据到第二HTTPS网页,urllib2的返回成功状态200和页面提取数据要求启用Cookie。

我检查了发布的数据,其罚款。我从网站获取cookie,但不确定它们是否正在发送下一个请求,或者我没有在python docs中阅读urllib2自动处理cookie。

要获得第二HTTPS页面:

resp = urllib2.urlopen(url, data=postData) 
    content = resp.read() 

我也试着代理处理程序设置,这个是计算器中类似的问题的答复读的地方,但得到了同样的结果:

proxyHandler = urllib2.ProxyHandler({'https': "http://proxy:port" }) 
+0

您是否有充分的理由使用urllib2而不是像[requests](http://pypi.python.org/pypi/requests)(最好)或[httplib2](http:// code .google.com/p/httplib2 /)(支持Python 3)? – ephemient

+0

我在找到解决方案时遇到了请求库,但由于我是python新手,我认为先试试python安装的库更好一些! – Coder

回答