python3-request.session 的使用

requests.session 状态进行状态保持:

requests中的session类能够自动处理发送请求获取响应过程中产生的cookie。进而达到状态保持的目的

request.session 的作用以及应用场景:

作用: 自动处理cookie,既下次请求会带上前一次的cookie

应用场景: 自动处理连续多次请求过程中产生的cookie

request.session 的使用方法:

session实例在请求了一个网站后,对方服务器设置在本地的cookie会保存在session中,下一次使用session请求对方服务器的时候,会带上前一次的cookie

示例代码:

# coding=utf-8
import requests


def login():
    """
    用request.session模拟登录一个网站,然后进行后续的操作
    """
    # 实例session
    session = requests.session()
    session.headers = {
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36'
    }

    url1 = 'https://github.com/login'
    # 发送请求,获取响应
    res1 = session.get(url1).content.decode()

    # 登录
    url2 = 'https://github.com/session'
    # 组装form表单的数据
    data = {
        'commit': '登入',
        'authenticity_token': 'ivl8Ho7Ty2um4HnvcOySEwO4s2Vr / +iWBOzaeXFU0xQLcW6t17eZvNsDY7 / 4NkgB3eGXJoUGvCh814kduD8cOQ ==',
        'login': 'zs',
        'password': '123456',
        'trusted_device': 'webauthn - support: supported',
        'webauthn - iuvpaa - support': 'unsupported',
        'return_to': '',
        'allow_signup': '',
        'client_id': '',
        'integration': '',
        'required_field_1b99': '',
        'timestamp': '1612536784033',
        'timestamp_secret': '1df9e1f53fd5f59d35b19eda9849947e332a0676d74eca272521e3f4afb24c49'
    }
    session.post(url2, data=data)


if __name__ == '__main__':
    login()
原文地址:https://www.cnblogs.com/happyflyingpig/p/14380157.html