使用Python登录网页(涉及cookie GET和POST)

时间:2014-04-28 08:44:28

标签: python http authentication cookies login

我正在尝试使用Python 2.7.6登录网站。登录逻辑包含2个网页中的2个步骤。

  1. 将用户ID和密码放入页面A,页面A提供cookie;
  2. 此标头用于在页面B中对登录进行身份验证。
  3. 只有在B对其进行身份验证后才能成功登录。

    这里有一篇帖子HTTP POST and GET with cookies for authentication in python,提出了类似的问题。解决方案正在使用请求。

    import requests
    url_0 = "http://www.PAGE_A.com/" # http://webapp.pucrs.br/consulta/principal.jsp, in original example
    url = "http://www.PAGE_B.com/" # https://webapp.pucrs.br/consulta/servlet/consulta.aluno.ValidaAluno, in original example
    data = {"field1_username": "ABC", " field_password": "123"}
    
    s = requests.session()
    s.get(url_0)
    r = s.post(url, data)
    

    我厌倦了在Python中使用它,并且它没有返回错误信息所以我猜它工作正常。

    但问题是,我如何知道它已登录?

    我在下面添加了打印登录页面以查看它是否返回了正确的页面。

    import mechanize
    
    br = mechanize.Browser()
    open_page = br.open("http://www.PAGE_B.com/")
    read_page = open_page.read()
    
    print read_page
    

    但是,它仍会在登录前显示内容。出了什么问题?

1 个答案:

答案 0 :(得分:0)

与两个中的一个一起去怎么样?

import mechanize;

browser = mechanize.Browser()
browser.addheaders = [('...')]

browser.open(YOUR_URL)
browser.select_form(FORM_NAME)
browser.form['USERNAME_FIELD'] = 'abc'
browser.form['PASSWORD_FIELD'] = 'password'
browser.submit()
print browser.response().read()
print browser.geturl()