用python写一个提取token或cookies加到headers里提交请求的方法

这篇博客介绍了如何使用Selenium自动化登录网站并获取登录后的cookies和token。通过模拟用户登录,提取必要的身份信息,然后构造headers进行API请求。文中提供了一段Python代码示例,演示了登录过程以及如何利用JavaScript获取localStorage中的token和浏览器cookies,特别是针对那些无法逆向的API请求场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

应用场景

    场景是这样的,有些提交API请求是需要携带登录者的身份信息的,如cookies、token等,那么当水平不够没办法逆向的时候,可以用一个笨的方法:
    1、先用selenium进行正常登录
    2、想办法获取登录后的cookies,token等
    3、创建headers,把获取的cookies或token带入
    4、提交post请求
    写了个一小段用selenium登录,然后获取cookies里的session的代码,供初学者参考

上代码

import time
from selenium import webdriver
from selenium.webdriver.common.by import By

browser = webdriver.Chrome()
browser.get('网址')
driver.implicitly_wait(20)
# 隐式等待网页加载20秒
browser.find_element(By.XPATH, '//*[@id="userName"]').send_keys('用户名')
browser.find_element(By.XPATH, '//*[@id="password"]').send_keys('密码')
# 自动输入用户名和密码
try:
    browser.find_element(By.XPATH, '//*[@id="root"]/div/div[2]/div/div/div[2]/form/div[4]/div/div/span/button').click()
    # 点击登录
    browser.find_element(By.XPATH, '//*[@id="/assetManage$Menu"]/li[2]/a')
    # 这一步很关键,随便定位一下登录后的元素,为了获取登录后返回的headers
except:
    pass

token = browser.execute_script('return window.localStorage.getItem("token")')
# 用selenium包装js代码获取window.localStorage里的token
print(token)
cookies = browser.get_cookies()
# 获取cookies,返回的是一个列表
for i in cookies:
    if i['name'] == 'pcmgr_session':
        pcmgr_session = i['value']
# 遍历获取需要的信息
        print(pcmgr_session)

注:代码中xpath部分需要根据自己访问的网站进行修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值