一、cookie (潇湘书院)
登录后有出现cookie,里面包含用户名和密码,但密码是通过加密的,解密需直到加密的方法。
点击网站前面的锁,打开cookie
删除全部的cookie的数据,用户登录信息被清除了。
什么时候使用cookie:
- 模拟登录不好编写
- 只要cookie没有账号密码
- 网站根据cookie对用户进行推荐,专门爬取某人的个人推荐
如何在代码中利用cookie:
- 将cookie写入headers
- get方法中cookies参数进行传递(必须为字典类型)
注意:
- 自定义headers中cookie,后面没有s
- get方法中cookies参数 (有s)
- cookie 一定是键值对存在的
二、 requests模拟登录代码
import requests
from requests.utils import dict_from_cookiejar
#cookiejar对象转化为字典的形式
start_url = "https://passport.17k.com/ck/user/login"
headers = {
"user-agent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Mobile Safari/537.36"
}
data = {
"username":"13326174824",
"passwoed":"dongli123"
}
resp = requests.post(url = start_url,headers=headers,data=data)
print(dict_from_cookiejar(resp.cookies))
三、cookie模拟登录代码
import requests
from requests.utils import dict_from_cookiejar
#cookie对象转化为字典的形式
session = requests.session() #会话维持,保存登录后的cookie
start_url = "https://www.xxsy.net/"
headers = {
"user-agent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Mobile Safari/537.36"
}
data = {
"username":"13326174824",
"passwoed":"dongli123"
}
resp = session.post(url = start_url)
resp1 = session.get(url = start_url,headers=headers,params = data) #这里需要传入params
print(resp1.text)