应用场景
场景是这样的,有些提交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)
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')
except:
pass
token = browser.execute_script('return window.localStorage.getItem("token")')
print(token)
cookies = browser.get_cookies()
for i in cookies:
if i['name'] == 'pcmgr_session':
pcmgr_session = i['value']
print(pcmgr_session)
注:代码中xpath部分需要根据自己访问的网站进行修改