python的requests模块实现登

发布时间:2019-09-01 09:51:46编辑:auto阅读(1540)

    51cto用python的requests模块实现登陆示例代码如下:

    -- coding:utf-8 --
    import requests
    import re

    client = requests.session()
    agent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"
    header = {
    "User-Agent": agent
    }

    URL = "http://home.51cto.com/index"
    def get_xsrf():
    #获取xsrf值
    response = client.get(URL, headers=header)
    match_obj = re.search('.name="csrf-token" content="(.?)"', response.text)
    if match_obj:
    return match_obj.group(1)
    else:
    return ""

    def _51cto_login(account, password):
    #51cto登录
    post_url = URL
    post_data = {
    "_csrf": get_xsrf(),
    "LoginForm[username]": account,
    "LoginForm[password]": password,
    #虽然抓包分析时post有以下2个参数,但是实际登陆时以下两个参数可有可无
    #"LoginForm[rememberMe]": 0,
    #"login-button": "登 录"
    }
    response = client.post(post_url, data=post_data, headers=header)
    #只有上面认证通过后,请求以下页面才可以看到登陆后的结果
    response = client.get(URL)
    #print response.content
    print response.text

    _51cto_login("填入真实的用户名", "填入真实的密码")

关键字