当前位置:首页 > 编程笔记 > 正文
已解决

【重磅】Cookies、headers、Session规律总结,搞定卡点

来自网友在路上 161861提问 提问时间:2023-11-05 10:22:12阅读次数: 61

最佳答案 问答题库618位专家为你答疑解惑

【重磅】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
    • 放在请求体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"]}
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"【重磅】Cookies、headers、Session规律总结,搞定卡点":http://eshow365.cn/6-32627-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!