python urllib2没有返回https页面

时间:2011-12-09 15:24:48

标签: python http https urllib2

当我尝试将数据从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" })

1 个答案:

答案 0 :(得分:1)

urllib2“处理”响应中的Cookie,但它不会自动存储它们并在以后的请求中重新发送它们。您需要使用the cooklib module

There are some examples in the documentation显示它如何与urllib2一起使用。