requests模拟登录的三种方法

1.利用session模拟登陆
首先我们看一下requests中session的使用方法

requests模拟登录的三种方法

我们来爬一下人人网首页的代码,其代码如下:

requests模拟登录的三种方法

其中post_url是我们点击登陆时,该页面需要跳转的页面url,具体查找方式如下:
我们来到登陆页面,在输入栏的地方右键点击检查,找到form表单中的action,就是我们想要得到的url地址

requests模拟登录的三种方法

post_data数据是以字典的方式发送,其中的键就是我们标签中的name标签,值是我们注册时的账号和密码

requests模拟登录的三种方法

另外,session.get中的url地址是我们需要爬取的首页的url,也就是登录后的url

之后按照session的使用方法,发送请求并获取返回的数据就可以了



2.将cookie放在headers中一起发送请求就可以了

requests模拟登录的三种方法

其中的cookie值需要我们在登录的页面,使用谷歌浏览器的检查查看:

requests模拟登录的三种方法

3,将cookie值拿出来直接在requests中发送就可以了,不过在发送时我们需要把cookie字符串转化为字典。

requests模拟登录的三种方法

其中的cookies利用的知识点是字典推导式





总结:
登录时寻找post地址
a,查看form表单,寻找action对应的url地址
-- 构造表单中用户名和密码的input标签name的值作为键,真正的用户名和密码作为值的字典,这就是post请求的请求体
-- 发送post请求requests.post(action的url,请求体)


b,如果action对应的没有url地址,抓包
-- 首先尝试的是手机版
-- 尝试电脑版
-- 寻找参数的规律和post的url地址的规律
- 参数的来源
- 在响应中
- 通过js生成,分析js
-- 如果数据是加密之后的
- 动态加密,分析如何动态加密的
- 不是动态加密,只需要找到加密之后的内容,就能用


分析js:
- 定位js的位置
- 通过elements中event listener 查看绑定的js的位置
- 通过Chrome的search all file 来搜索关键字
- 使用chrome提供的的断点工具,在js中添加断点,重新进行操作,整个流程会在断点处暂停
- 可以通过chrome提供的工具,查看js中每个方法的具体实现
- 明确了js的操作之后,对于需要生成的数据,可以使用python去实现一遍