Python爬虫 模拟登录状态 requests版
前言
网站必须是登录状态才能查看网站信息,是最常见的反爬手段,下面我分享一下request模拟登录状态进行请求
目录
模拟登录的原理
直接复制网站Cookie模拟登录状态
通过登录接口信息破解出Cookie模拟登录状态
模拟登录的原理
网站是使用Cookie和session记录网站的登录状态的
常见有三种情况
情况一
直接把用户信息放到Cookie里面,明文暴露用户信息,不安全,一般很少网站使用
情况二
网站通过session对用户信息进行键值对的方式进行存储,sesionID和用户信息,cookie存储的是sessionID,后台通过cookie存储的sessionID来对用户信息进行寻找
情况三
分布式情况下,后台把用户信息存储到Redis里面了,原理和情况二一样
其他情况加入反爬加密,需要自己解密了
总结: 无论他是使用那种情况开发登录功能,一般登录状态的信息在请求头cookie或者Authorization里面
所以我们在request请求的时候拿到网站Cookie或者Authorization就可以保证网站的登录状态了,也就模拟了用户登录
直接复制网站Cookie模拟登录状态
这种适合自己临时使用,因为Cookie会变,这样获取肯定不能长时间使用
找到你需要请求的接口,找到Cookie的字符串
import requests#添加请求头用户代理,模拟真人行为
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"
}cookies = '在网页上面获取的cookie字符串'#处理Cookie字符串可以放到request里面使用
cookies = {item.split('=')[0]: item.split('=')[1] for item in cookies.split("; ")}
cookies = requests.utils.cookiejar_from_dict(cookies)url = "请求网址"response = requests.get(url, headers=headers, cookies=cookies)#得到网页源代码
print(response.text)
通过登录接口信息破解出Cookie模拟登录状态
这种就是先使用这个网站的登录接口进行登录,看返回的信息里面一般是有生成Cookie信息的原材料
如果网站没有反爬机制,就直接把Cookie信息给你了,如果有反爬机制,他会把返回的Cookie信息进行加密处理什么的,那么就需要自己自行探索了
拿到Cookie信息,后面就和《直接复制网站Cookie模拟登录状态》步骤一样了