介紹
Selenium可以模擬瀏覽器進(jìn)行自動(dòng)化操作,但一些網(wǎng)站需要進(jìn)行登錄才能進(jìn)行一些操作,比起輸入賬號(hào)密碼,cookie是更加方便的。而且fofa首先登錄郵箱賬號(hào)時(shí)獲得的cookie并不是fofa的cookie,因此我們直接選擇利用fofa的cookie進(jìn)行自動(dòng)登錄。但是selenium需要先打開一個(gè)網(wǎng)站才會(huì)加載進(jìn)去cookies,因此我們需要將cookies寫在代碼中,加載進(jìn)去
擴(kuò)展
- get_cookies(): 獲得所有cookie信息。
- get_cookie(name): 返回字典的key為“name”的cookie信息。
- add_cookie(cookie_dict): 添加cookie?!癱ookie_dict”指字典對(duì)象,必須有name 和value 值。
- delete_cookie(name,optionsString):刪除cookie信息?!皀ame”是要?jiǎng)h除的cookie的名稱,“optionsString”是該cookie的選項(xiàng),目前支持的選項(xiàng)包括“路徑”,“域”。
- delete_all_cookies(): 刪除所有cookie信息。
步驟
(分為兩部分,先1后2)
以fofa為例:
1.模擬登錄并保存此次登錄的cookies
代碼如下:
import json
from selenium import webdriver
dirver = webdriver.Chrome(executable_path=r'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
dirver.get('https://classic.fofa.so/')
dictCookies = dirver.get_cookies() #獲得所有cookie信息(返回是字典)
print(dictCookies)
print(type(dictCookies))
jsonCookies = json.dumps(dictCookies) #dumps是將dict轉(zhuǎn)化成str格式
print(jsonCookies)
print(type(jsonCookies))
# 登錄完成后,將cookies保存到本地文件
with open("cookies_fofa.json", "w") as fp:
fp.write(jsonCookies)
可以看到生成cookies_fofa.json
也就是轉(zhuǎn)化成str的cookies被保存在該文件中
第一部分完成,獲得了頁面的cookies,這樣獲得好處是能知道cookies的格式。
2.添加我們登錄賬戶的cookies實(shí)現(xiàn)自動(dòng)登錄
我們可以先登錄我們的會(huì)員號(hào),然后查看其cookie的名和值,然后添加至下面代碼,即可實(shí)現(xiàn)自動(dòng)登錄
代碼如下:
import json
from selenium import webdriver
browser = webdriver.Chrome()
browser.get("https://classic.fofa.so/")
browser.delete_all_cookies() #刪除所有cookie信息
with open('cookies_fofa.json', 'r', encoding='utf-8') as f:
listCookies = json.loads(f.read()) #loads是將str轉(zhuǎn)化成dict格式
for cookie in listCookies:
browser.add_cookie({ #此處模仿之前生成的cookies_fofa.json的格式寫即可,要用單引號(hào),因?yàn)橐呀?jīng)轉(zhuǎn)成dict格式了
'domain': '.fofa.so',
'name': 'cookie的名',
'value': 'cookie的值',
'path': '/',
'expires': None
})
browser.get("https://classic.fofa.so/")
可以看到成功實(shí)現(xiàn)自動(dòng)登錄
到此這篇關(guān)于利用Selenium添加cookie實(shí)現(xiàn)自動(dòng)登錄的示例代碼(fofa)的文章就介紹到這了,更多相關(guān)Selenium cookie自動(dòng)登錄內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Django操作cookie的實(shí)現(xiàn)
- 如何使用會(huì)話Cookie和Java實(shí)現(xiàn)JWT身份驗(yàn)證
- Python Selenium操作Cookie的實(shí)例方法
- Python爬蟲設(shè)置Cookie解決網(wǎng)站攔截并爬取螞蟻短租的問題
- Http Cookie機(jī)制及Cookie的實(shí)現(xiàn)原理