爬虫中requests模块中session的实战应用

本文以学习通为例,来实际应用session(没有学习通的小伙伴可以自己去找一个登录页面,但要尽量找一个表单数据(下面提到了)没有变化的来实验,因为简单)

1.首先我们新建隐身窗口(无痕模式)进入学习通登录页面的网址:

登录

2.开始抓包,输入账号密码登录进入

3.在所抓的包中找到fanyalogin包

4.找到其中的User-Agent记录下来,headers中会用到。

5.同时记录下该包的表单数据(如下图 ):

爬虫中requests模块中session的实战应用_第1张图片

 6.重复上述1 2 3 5步骤,对比两次记录的表单数据有哪些是不同的,由此可以看出两次的数据一致(马赛克部分为你的账号密码),数据一致证明数据为固定值(账号密码为输入值),可以直接放入data中构建data字典。

爬虫中requests模块中session的实战应用_第2张图片

7.把该包的网址记录下来作为登录url,同时可以在该包中看到请求类型为post类型。

8.在登录成功的页面找到账号管理点击进入,并记录下其网址作为验证url,登录成功其title为:

账号管理---xx大学安全教育平台,若打开一个新页面,输入网址,则其title为:用户登录。

下面直接上代码:

import requests


def login():
    session = requests.session()
    session.headers = {
        'User-Agent': '改为你的user-agent'
    }
    # 登录url
    url = 'https://passport2.chaoxing.com/fanyalogin'
    data = {
        'fid': '129838',
        'uname': '改为你的账号',
        'password': '改为你的密码',
        'refer': 'http%3A%2F%2Fysdxaqjy.aqjy.chaoxing.com',
            't': 'true'
    }
    session.post(url, data=data)
    # 验证url2
    url2 = 'http://i.mooc.chaoxing.com/settings/info?t=1637052365105'
    response = session.get(url2)
    with open('xxt.html', 'wb')as f:
        f.write(response.content)


if __name__ == '__main__':
    login()

结果:

通过结果可以看到,登录成功了。以上就是session:状态保持的实战应用。 

你可能感兴趣的:(爬虫)