—— 利用本地儲存cookies自動化登入任意**
## 一、思路
與人機識別硬剛,這個比較有挑戰性,如果有興趣的話可以試一下
通過讀取有本地記錄的瀏覽器,直接進行cookies登入
通過讀取本地儲存的cookies,使用任意瀏覽器進行登入
其中第二項和第三項都差不多,都是由cookies登入,但是第二項是必須啟動本地的瀏覽器才能正常登入,而第三項則通過儲存的cookies直接在後續流程中任意啟動的瀏覽器都可以直接登入了。 則我的思路就是:從本地瀏覽器中讀取並儲存cookies - - > 形成乙個儲存cookies的json檔案 - - > 通過讀取json檔案給瀏覽器新增cookies以實現登入操作。
理論成立,**如下:
from selenium import webdriver
import json
from selenium.webdriver.chrome.options import options
#用json檔案載入cookies值
def get_cookies_local(filename, driver):
in your cmd \n\n\n')
print("waitting for your operator_____")
options = options()
options.add_experimental_option("debuggeraddress", "localhost:12306")
setter = webdriver.chrome(options=options)
#讀取本地瀏覽器上**的cookies
setter.get("")
cookies= setter.get_cookies()
with open(filename, 'w') as f:
json.dump(cookies, f)
setter.close()
#獲取後直接匯入cookies值
use_option(filename, driver)
使用json文字的值
def use_option(filename, driver):
#通過判斷是否有對應的cookies檔案來或cookies檔案是否有值決定返回值
try:
with open(filename, 'r') as f:
arr = json.load(f)
#如果cookies檔案不為空則讀取並向瀏覽器新增cookies
if arr != none:
for i in range(len(arr)):
driver.add_cookie(arr[i])
return true
else:
return false
except exception as e:
return false
if __name__ == '__main__':
driver = webdriver.chrome()
driver.get("")
#通過判斷use_option函式的返回值來決定是否重新寫入json檔案
if not use_option('cookies.json', driver):
get_cookies_local('cookies.json', driver)
#登入driver.get("")
可以看到沒有對應的儲存cookies.json檔案的,然後直接執行**:
執行操作:點選執行後會直接彈出未記錄本地的瀏覽器開啟b站,然後通過執行提示,手動開啟記錄本地的瀏覽器(用於對cookies的提取與記錄),程式關閉本地瀏覽器後,會發現多出乙個cookies.json檔案,自動將未記錄本地的瀏覽器登入到相應的賬號。第二次執行,由於已經存在cookies.json檔案,通過這個檔案可直接登入,不必再次開啟本地瀏覽器。
通過cookies自動化登入瀏覽器多少有點投機取巧,但是也是新手接觸瀏覽器自動化的一種解決辦法,希望可以在日後通過各種庫的學習以及對opencv、機器學習的掌握,來解決人機識別難題,真正做到使用者的操作簡潔化。
python語言初識(紅桃三)
input使用 python2 要宣告輸入型別 bigbox python3 不需要宣告輸入型別 bigbox python2的 raw input 與 python3 的 input 功能相同 int python2 int longint python3 int float str python...
Nginx系列 初識
nginx 是乙個開源的,高效能的http和反向 伺服器,同時也提供了imap pop3 smtp服務,將其源 以類bsd許可的形式發布,因它的穩定性 豐富的功能集 示例配置檔案和低系統資源的消耗而聞名。反向 和負載均衡 我們先來看看什麼是正向 正向 區域網中的電腦使用者想要直接訪問網路是不可行的,...
C系列 指標初識
學c花絮 以前學c的時候,感覺指標這玩意很難控制,由於一開始就對指標心懷恐懼,所以後來沒學好自在情理之中。可如今不一樣,想做c開發,這是吃飯的傢伙,不得不認真。當乙個人要靠別人或者某種技能來生存的話,也許是很可悲的,這個目前無法改變。先上點概念性的 運算子 是間接引用或間接定址的運算子。當它作用於指...