本文主要是介绍【重磅】Cookies、headers、Session规律总结,搞定卡点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【重磅】Cookies规律总结,搞定卡点
登录后开始正式获取数据阶段:
-
不使用session:
-
放在请求头headers中
- 当如是:headers = {“user-agent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36”,“Cookie”: “cookie_name1=cookie_value1; cookie_name2=cookie_value2”},将请求头上的复制下来即可
- 开个脑洞:
- 提取session中的cookies来适配请求头headers的格式:
- 获取 Session 携带的 Cookie: cookies = session.cookies
- 将Cookie设置到Headers中:headers = {‘Cookie’: '; '.join([f"{cookie.name}={cookie.value}" for cookie in cookies])}
- 然后发送带有Cookie的Headers的请求即可
- “;”.join()方法:将一个列表中的元素用特定的分隔符连接成一个字符串时
- eg:
- my_list = [‘apple’, ‘banana’, ‘orange’]
- 使用分号和空格连接列表中的元素: result = '; '.join(my_list)
- print(result): apple; banana; orange
- 提取session中的cookies来适配请求头headers的格式:
-
放在请求体body中:
- cookies = { “cookie_name1”: “cookie_value1”, “cookie_name2”: “cookie_value2”,“cookie_name3”: “cookie_value3” }
- 提取session中的cookies来适配请求体body的格式
- 获取Session携带的 Cookie:cookies = session.cookies
- 将Cookie 转换为字典: dict_cookie = requests.utils.dict_from_cookiejar(cookies)
- 打印字典形式的 Cookie: print(dict_cookie)
- 拓展:将字典形式的 Cookie 转换为 RequestsCookieJar对象
- 获取Session携带的 Cookie:cookies = session.cookies
- 将Cookie 转换为字典: dict_cookie = requests.utils.dict_from_cookiejar(cookies)
- 将字典形式的Cookie转换为RequestsCookieJar对象:headers_cookiejar = requests.utils.cookiejar_from_dict(dict_cookie)
- 当然这一步暂时没发现实用价值,大概只要知道居然还能这样转换即可
-
-
GET请求
- 原始状态,形如url?keyname1=value1&keyname2=value2……
- 拆解成: url ,params字典来盛放参数
- 注意:API 规定了重复参数名的方式来表示多个日期范围,那么您需要按照规定的方式传递参数。在这种情况下,服务器应该有相应的逻辑来解析和处理这样的参数。
- eg: “orderTimeBetween”: [“2023-10-30 00:00:00”,“2023-10-31 23:59:59”]
- response = requests.get(url, params=params,headers=headers)
-
使用session:
- 1.创建Session对象: session = request.Session()
- 2.发送GET/POST请求: session.post()/session.get()
- 3.获取Session携带的 Cookie:cookies = session.cookies
CookieJar = session.cookies
dict_cookie = requests.utils.dict_from_cookiejar(CookieJar)# 登录后
url1= "https://imadmin.acetopbms.com/Reward/List"params = {"Include": "SUM(CostPoint)totalPoint","Skip": "0","Take": "2000","channel": "igoldhk","orderBy": "orderTime","orderTimeBetween": ["2023-10-30 00:00:00","2023-10-31 23:59:59"]}
这篇关于【重磅】Cookies、headers、Session规律总结,搞定卡点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!