当我尝试将数据从http发布到https时,urllib2不会返回所需的https网页,而是网站要求启用Cookie。
获取第一个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()
当我从上页提取数据并将数据发布到第二个https页面时,urllib2返回成功状态200,页面要求启用cookie。
我查了帖子数据,很好。我正在从网站上获取cookie但不确定它们是否随下一个请求被发送,因为我在python文档中读到urllib2会自动处理cookie。
获取第二个https页面:
resp = urllib2.urlopen(url, data=postData)
content = resp.read()
我还尝试将代理处理程序设置为此,因为在某个地方对stackoverflow的类似问题的回复中读取了但是得到了相同的结果:
proxyHandler = urllib2.ProxyHandler({'https': "http://proxy:port" })
答案 0 :(得分:1)
urllib2
“处理”响应中的Cookie,但它不会自动存储它们并在以后的请求中重新发送它们。您需要使用the cooklib
module。
There are some examples in the documentation显示它如何与urllib2
一起使用。