Requests设置session会话手动添加cookie

Requests设置session会话手动添加cookie,使同一个session实例发出的所有请求之间保持cookie,而不再额外传入cookie参数

add_dict_to_cookiejar

使用 add_dict_to_cookiejar 方法添加cookie

1
2
3
4
5
6
7
8
import requests

cookie_dict = {
'key': 'value'
}

with requests.session() as session:
requests.utils.add_dict_to_cookiejar(session.cookies, cookie_dict)

登录京东实例

config.py

1
2
3
4
5
# 京东cookie
JD_COOKIE = {
'pt_key': '你的pt_key',
'pt_pin': '你的pt_pin',
}

main.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import time

import requests
from requests.packages import urllib3

import config


urllib3.disable_warnings()
JD_COOKIE = config.JD_COOKIE
with requests.session() as session:
requests.utils.add_dict_to_cookiejar(session.cookies, JD_COOKIE)


def get_userinfo():
'''
查询京东账号信息
'''
url = f'https://wq.jd.com/user/info/QueryJDUserInfo?_={int(time.time() * 1000)}&sceneval=2&g_login_type=1&callback=cbQueryJDUserInfo&g_tk=1742971556&g_ty=ls'
headers = {
'Connection': 'keep-alive',
'Accept': '*/*',
'Referer': 'https://wqs.jd.com/',
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1 Edg/87.0.4280.88',
}

res = session.get(url=url, headers=headers, verify=False)
html = res.text
print(html)


get_userinfo()

输出

部分数据做了脱敏处理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
try{cbQueryJDUserInfo({
"base" : {
"TipUrl" : "http://xxxxx=https://wqs.jd.com/",
"accountType" : 0,
"curPin" : "jd_xxxxxxxxx",
"headImageUrl" : "http://xxxxx.jpg",
"isJTH" : "0",
"jdNum" : ******,
"jvalue" : *****,
"levelName" : "**用户",
"mobile" : "******",
"nickname" : "**",
"userLevel" : **
},
"definePin" : 0,
"isHitArea" : 1,
"isHomeWhite" : 0,
"isLongPwdActive" : 0,
"isPlusVip" : true,
"isRealNameAuth" : true,
"isShortPwdActive" : 1,
"msg" : "success.",
"orderFlag" : 1,
"retcode" : 0,
"userFlag" : 1
}
);}catch(e){}

相关文章

参考资料