【发布时间】:2011-12-09 15:24:47
【问题描述】:
当我尝试将数据从 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" })
【问题讨论】:
-
我在寻找解决方案时遇到了 requests 库,但由于我是 python 新手,我认为最好先试试 python 安装的库!