欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識(shí)庫 > Python3使用Selenium獲取session和token方法詳解

Python3使用Selenium獲取session和token方法詳解

熱門標(biāo)簽:深圳網(wǎng)絡(luò)外呼系統(tǒng)代理商 柳州正規(guī)電銷機(jī)器人收費(fèi) 400電話辦理費(fèi)用收費(fèi) 千呼ai電話機(jī)器人免費(fèi) 外呼系統(tǒng)前面有錄音播放嗎 高德地圖標(biāo)注字母 騰訊地圖標(biāo)注有什么版本 申請(qǐng)辦個(gè)400電話號(hào)碼 鎮(zhèn)江人工外呼系統(tǒng)供應(yīng)商

一、背景說明

之前寫了一款簡(jiǎn)單的api模糊測(cè)試工具,之前系統(tǒng)可以使用http Base認(rèn)證現(xiàn)在改成session形式并加上了token。

最簡(jiǎn)單的改造方法,是自己先在瀏覽器手動(dòng)登錄,然后提取出session和token(系統(tǒng)token在整個(gè)會(huì)話期間可重復(fù)使用)填到模糊測(cè)試工具中即可。但這種非全自動(dòng)化的方式不到萬不得已不想用。

最直接的方法,最使用requests按登錄流程依次發(fā)包登錄即可。但其中的難點(diǎn)是密碼是加密提交的,詢問開發(fā)人員說是DES加密;DES加密不難,但是用不同的語言編寫的加密算法與別人的結(jié)果完全一致那就比較費(fèi)工夫。

最后的方法,那就是使用selenium登錄避開密碼的構(gòu)造,這種方法的關(guān)鍵點(diǎn)在于:selenium是基于圖形界面操作的,沒有直接的辦法能獲取request和response的數(shù)據(jù)包,在這種情況下如何獲取session和token。

自己動(dòng)web前端的存儲(chǔ)并沒有很深入了解,一直想的是如何獲取selenium request和response的數(shù)據(jù)包從中提取session和token,直到看到這篇文章才想起前端的變量(尤其是restful中的全局變量)會(huì)放存localStorage和sessionStorage中,從中提取session和token即可。

二、環(huán)境搭建

2.1 下載驅(qū)動(dòng)

下載驅(qū)動(dòng)文件,放到后續(xù)python文件同級(jí)目錄下或加入到環(huán)境變量中即可。其中Chrome驅(qū)動(dòng)要注意Driver版本與瀏覽器版本對(duì)應(yīng)要求。

Firefox驅(qū)動(dòng)下載地址:https://github.com/mozilla/geckodriver/releases

Chrome驅(qū)動(dòng)下載地址:http://chromedriver.chromium.org/downloads

Safari驅(qū)動(dòng)下載地址:https://webkit.org/blog/6900/webdriver-support-in-safari-10/

Edge驅(qū)動(dòng)下載地址:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

2.2 安裝selenium

pip install selenium

三、程序?qū)崿F(xiàn)

3.1 系統(tǒng)狀況

手動(dòng)登錄系統(tǒng)后,查看存儲(chǔ)狀況如下圖所示,sessionid和token分別存儲(chǔ)在sessionStorage的sessionId和token兩個(gè)變量中

3.2 實(shí)現(xiàn)代碼

import json
import time
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

class GetSessionAndToken():
  def __init__(self):
    # 啟用無頭模式,可選
    browser_options = webdriver.FirefoxOptions()
    browser_options.add_argument('--headless')
    browser_options.add_argument('--disable-gpu')
    self.browser = webdriver.Firefox(firefox_options=browser_options)
    # self.browser = webdriver.Chrome()

  # 登錄系統(tǒng),具體到自己系統(tǒng)時(shí)需要自行修改
  def login_system(self):
    # 登錄用戶名密碼,改成目標(biāo)系統(tǒng)用戶名密碼
    username = "admin"
    password = "123456"
    # 登錄頁面url,改成目標(biāo)系統(tǒng)登錄頁面
    url = "https://10.10.6.93/#login"
    self.browser.get(url)
    # 顯性等待,直到用戶名控件加載出來才進(jìn)行下一步
    WebDriverWait(self.browser,20,0.5).until(EC.presence_of_element_located((By.ID,"txtUserName")))
    # 填寫用戶名
    self.browser.find_element_by_id("txtUserName").send_keys(username)
    # 填寫密碼
    self.browser.find_element_by_id("txtPassword").send_keys(password)
    # 點(diǎn)擊登錄
    self.browser.find_element_by_id("btnLogin").click()
    # 強(qiáng)制等待5秒,待session和token都成功返回并存到瀏覽器中
    # restful隱性等待不太好用?self.browser.implicitly_wait(5)
    time.sleep(5)

  # 獲取sessionid
  def get_sessionid(self):
    # 是要從localStorage中獲取還是要從sessionStorage中獲取,具體看目標(biāo)系統(tǒng)存到哪個(gè)中
    # window.sessionStorage和直接寫sessionStorage是等效的
    # 一定要使用return,不然獲取到的一直是None
    # get的Item不一定就叫sessionId,得具體看目標(biāo)系統(tǒng)把sessionid存到哪個(gè)變量中
    sessionid = self.browser.execute_script('return sessionStorage.getItem("sessionId");')

    # 另外sessionid一般都直接通過返回Set-Cookies頭設(shè)置到Cookie中,所以也可以從Cookie讀取
    # 獲取瀏覽器所有Set-Cookie,返回對(duì)象是字典列表
    # cookies = self.browser.get_cookies()
    # 獲取單項(xiàng)Cookie,是不是叫sessionId取決于系統(tǒng)存成什么變量,單項(xiàng)Cookie是字典
    # cookie = self.browser.get_cookie("sessionId")
    # cookie = cookie["value"]
    # print(f"{cookies}")
    return sessionid

  # 獲取token
  def get_token(self):
    # 是要從localStorage中獲取還是要從sessionStorage中獲取,具體看目標(biāo)系統(tǒng)存到哪個(gè)中
    # window.sessionStorage和直接寫sessionStorage是等效的
    # 一定要使用return,不然獲取到的一直是None
    # get的Item不一定就叫token,得具體看目標(biāo)系統(tǒng)把token存到哪個(gè)變量中
    token = self.browser.execute_script('return sessionStorage.getItem("token");')
    # print(f"{token}")
    return token

  def __del__(self):
    # 退出程序時(shí)關(guān)閉瀏覽器
    self.browser.close()

if __name__ == "__main__":
  obj = GetSessionAndToken()
  obj.login_system()
  sessionid = obj.get_sessionid()
  token = obj.get_token()
  print(f"sessionid為: {sessionid}\n"
     f"token為:   {token}")

3.3 實(shí)現(xiàn)效果

更多關(guān)于Python獲取session和token方法請(qǐng)查看下面的相關(guān)鏈接

您可能感興趣的文章:
  • python中requests模擬登錄的三種方式(攜帶cookie/session進(jìn)行請(qǐng)求網(wǎng)站)
  • Python處理session的方法整理
  • python使用requests.session模擬登錄
  • python3+requests接口自動(dòng)化session操作方法
  • Python爬蟲番外篇之Cookie和Session詳解
  • python中requests庫session對(duì)象的妙用詳解
  • 剖析Python的Tornado框架中session支持的實(shí)現(xiàn)代碼
  • 在Python的Django框架的視圖中使用Session的方法
  • Python ORM框架SQLAlchemy學(xué)習(xí)筆記之映射類使用實(shí)例和Session會(huì)話介紹

標(biāo)簽:郴州 烏蘭察布 海南 烏蘭察布 大慶 合肥 平頂山 哈爾濱

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python3使用Selenium獲取session和token方法詳解》,本文關(guān)鍵詞  Python3,使用,Selenium,獲取,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python3使用Selenium獲取session和token方法詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python3使用Selenium獲取session和token方法詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    69精品无码成人久久久久久| 精品成人一区二区三区四区| 国产精品高潮久久久久无| 久久超碰97中文字幕| 国产中文字幕一区二区| 欧美一级免费大片| 午夜一区二区三区视频| 中文字幕天堂网| 91麻豆精品国产91久久久资源速度| 亚洲欧美激情在线| 日本亚洲一区二区三区| 欧美在线观看视频一区二区 | 在线观看免费视频黄| 欧美福利视频导航| 日韩福利视频导航| 青青草成人免费视频| 欧美精品一区二区三区很污很色的| 美国十次综合导航| 久久久久久国产免费a片| 久久精品人人做人人综合| 国产精品一卡二卡在线观看| 神马午夜精品91| 自拍偷拍亚洲激情| 久久久精品人妻一区二区三区| 欧美日韩一区三区| 日韩极品在线观看| 欧美丰满美乳xxⅹ高潮www| 国产欧美久久久精品影院| 国产99精品视频| 日本丶国产丶欧美色综合| 亚洲最新在线观看| 好吊色视频一区二区三区| 精品噜噜噜噜久久久久久久久试看 | 日韩精品一区二区三区中文不卡 | 色噜噜狠狠一区二区三区果冻| 亚洲精品写真福利| 日本一区二区在线免费观看| 26uuuu精品一区二区| 国产精品一区二区三区四区| 草视频在线观看| 亚洲一区在线看| 中国黄色a级片| 欧美激情一区三区| aaaaa黄色片| 欧美变态tickle挠乳网站| 国产高清不卡一区| 在线欧美小视频| 日本少妇一区二区| 国产精品suv一区二区88| 一区二区日韩av| 自拍偷拍中文字幕| 国产精品久久三| 亚洲男女在线观看| 国产日韩精品一区二区浪潮av| proumb性欧美在线观看| 777亚洲妇女| 国产毛片精品国产一区二区三区| 日本电影亚洲天堂一区| 麻豆成人91精品二区三区| 福利所第一导航| 日韩av一区二区三区| 黑人巨大精品一区二区在线| 爽好多水快深点欧美视频| 少妇高潮一区二区三区喷水| 亚洲国产成人av| 亚洲天堂av中文字幕| 亚洲午夜影视影院在线观看| 人妻互换一区二区激情偷拍| 夜夜嗨av一区二区三区| 日韩欧美黄色网址| 亚洲最色的网站| 亚洲熟女毛茸茸| 日韩精品91亚洲二区在线观看| 国产一二三四区| 麻豆传媒一区二区三区| 欧美在线免费观看视频| 国产一区二区三区电影在线观看| 欧美日韩一区三区| 成人小视频在线观看| 日韩欧美123| 91视视频在线观看入口直接观看www | 欧美高清精品3d| 国产成a人亚洲| 日韩视频一区二区三区| av在线播放不卡| 久久综合久久99| 日本五十肥熟交尾| 亚洲日本va在线观看| 五月婷婷欧美激情| 日韩激情av在线| 欧美午夜一区二区| 成人黄色av电影| 久久免费午夜影院| 丰满熟女人妻一区二区三区| 国产精品青草综合久久久久99| 国精产品一区一区三区免费视频| 亚洲精品免费电影| 老湿机69福利| 国产一区不卡在线| 精品剧情在线观看| 亚州av综合色区无码一区| 国产精品夫妻自拍| 粉嫩精品久久99综合一区| 热久久免费视频| 51精品秘密在线观看| 91尤物视频在线观看| 国产精品区一区二区三区| 男人的天堂官网| 久久精品国产网站| 欧美一级一级性生活免费录像| 四虎国产精品永久免费观看视频| 国产精品久久久99| 麻豆网址在线观看| 国产黑丝在线一区二区三区| 久久久久久久综合狠狠综合| 国产精品揄拍100视频| 三级欧美在线一区| 91精品一区二区三区在线观看| 免费看91视频| 一区二区三区四区不卡在线 | 亚洲激情图片qvod| 欧洲精品一区二区| a级大片免费看| 1区2区3区精品视频| 日本青青草视频| 成人污污视频在线观看| 国产精品毛片久久久久久久| 永久av免费网站| 国产99精品在线观看| 国产精品素人一区二区| 青青青在线免费观看| 国v精品久久久网| 综合久久综合久久| 91国产成人在线| av地址在线观看| 亚洲成人1区2区| 91精品国产综合久久久久| 99久久亚洲一区二区三区青草 | 自拍偷自拍亚洲精品播放| 色综合天天综合网天天狠天天| 成人av免费网站| 一区二区三区四区亚洲| 欧美日本一区二区三区四区| 97人妻精品一区二区三区免费| 偷窥少妇高潮呻吟av久久免费| 91精品国产欧美一区二区成人| 亚洲国产欧美视频| 久久国产麻豆精品| 日本一区二区三区四区| 中文字幕在线有码| 91丨九色丨尤物| 午夜在线成人av| 精品99一区二区| 51精品免费网站| 91麻豆精品一区二区三区| 亚洲高清免费视频| 欧美不卡一区二区| 成人一级黄色大片| 丰满少妇一区二区三区专区| 日本成人中文字幕在线视频| 国产婷婷色一区二区三区| 色欧美乱欧美15图片| 国产视频精品视频| 看片的网站亚洲| 国产精品盗摄一区二区三区| 欧美色综合天天久久综合精品| 男男做爰猛烈叫床爽爽小说| 韩国三级在线一区| 亚洲色图一区二区三区| 4438成人网| 丁香六月激情综合| 韩国三级丰满少妇高潮| 日韩高清不卡一区| 国产精品区一区二区三区| 欧美精品tushy高清| wwwww黄色| 国产成人精品一区二区三区在线观看| 免费在线看成人av| 国产精品午夜电影| 制服丝袜激情欧洲亚洲| 成人免费视频入口| 亚洲一区二区三区四区av| 国产一区二区三区免费| 一区二区三区四区精品在线视频| 欧美精品一区二区三区蜜桃视频 | 亚洲精品免费在线| 久久一区二区三区国产精品| 色婷婷久久久亚洲一区二区三区| 蜜桃精品成人影片| 91视频免费播放| 韩国女主播一区| 亚洲国产裸拍裸体视频在线观看乱了| 欧美精品一区二区不卡 | 色老汉一区二区三区| 少妇按摩一区二区三区| 99re成人精品视频| 国内精品免费**视频| 五月激情综合网| 综合自拍亚洲综合图不卡区| 精品国产91洋老外米糕|