如何将数据发布到网站,存储cookie,然后获取另一页

时间:2014-07-14 14:35:44

标签: python cookies flask mechanize

我尝试使用Mechanize解决问题,但我无法让它工作。

如果在登录后发送cookie,网站只允许访问数据。我需要做以下事情:

  1. 使用POST登录页面
  2. 存储Cookie
  3. 访问受保护的页面

2 个答案:

答案 0 :(得分:0)

我使用Mechanize提出了以下解决方案。 Cookie由mechanize.Browser管理。

br = mechanize.Browser()   
resp = br.open('https://xxxxxxxxxxxxxxxxxxx')
br.select_form(nr=0)
br['username'] = username
br['password'] = password
response = br.submit()
time.sleep(1)
resp_second = br.open('https://secretwebpage')
print resp_second.read()

答案 1 :(得分:0)

您可以在Requests中使用会话。来自documentation

  

Session对象允许您跨越某些参数   要求。它还在所有请求中保留Cookie   会话实例。

以下是可能的登录和后续请求的显示方式:

import requests

s = requests.Session(verify='my_cert_file.crt')
r = s.post('https://secure-site.com/login', data={
    'username': my_username,
    'password': my_password,
})
# logging in sets a cookie which the session remembers
print s.cookies
r = s.get('https://secure-site.com/secure-data')
print r.json()