一、前言
0、作用:保留登錄數(shù)據(jù)
1、瀏覽器:edge 瀏覽器(chorm類似)
2、環(huán)境:安裝 selenium 與 selenium edge 引擎
下載 selenium:
pip install selenium
根據(jù) edge 版本找到對應(yīng)的引擎:
edge: https://msedgewebdriverstorage.z22.web.core.windows.net/
chorm: http://chromedriver.storage.googleapis.com/index.html
二、步驟
1、接管本地瀏覽器
相關(guān)包
from selenium import webdriver
import os,subprocess,psutil
啟動(dòng)瀏覽器
python程序啟動(dòng):
# 切換到瀏覽器安裝地址
os.chdir("C:\Program Files (x86)\Microsoft\Edge\Application")
# 啟動(dòng)9222端口以D:\chrome\seleniumEdge路徑作為自定義用戶數(shù)據(jù)目錄
sub_popen = subprocess.Popen('.\msedge.exe --remote-debugging-port=9222 --user-data-dir="D:\chrome\seleniumEdge"')
cmd啟動(dòng):
msedge.exe --remote-debugging-port=端口號 --user-data-dir="路徑"
初始化配置 selenium
edge_options = webdriver.EdgeOptions()
edge_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
# 瀏覽器引擎路徑 + 自定義瀏覽器配置
driver = webdriver.Edge(executable_path="D:/chrome/edge/msedgedriver.exe",options=edge_options)
進(jìn)行相關(guān)自動(dòng)化操作
driver.get("....")
driver.quit()
關(guān)閉瀏覽器
def kill_selenium(port):
'''根據(jù)port號查詢pid以關(guān)閉程序
'''
# 進(jìn)程列表
port_popen = os.popen(f'netstat -ano | findstr "{port}"')
pid_list = [int(t.split(' ')[-1]) for t in port_popen.read().split('\n') if t]
for pid in pid_list:
try:
# 刪除父進(jìn)程和子進(jìn)程
parent_process = psutil.Process(pid)
for child_process in parent_process.children(recursive=True):
child_process.kill()
parent_process.kill()
except Exception as e:
print(e)
port_popen.close()
四、案例:更新某企查驗(yàn)證碼后的cookie(已登錄狀態(tài))
def get_cookies(self):
'''更新cookie
'''
# 切換路徑啟動(dòng)瀏覽器
os.chdir("C:\Program Files (x86)\Microsoft\Edge\Application")
sub_popen = subprocess.Popen('.\msedge.exe --remote-debugging-port=9222 --user-data-dir="D:\chrome\seleniumEdge"')
# 初始化selenium
edge_options = webdriver.EdgeOptions()
edge_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
driver = webdriver.Edge(executable_path="D:/chrome/edge/msedgedriver.exe",options=edge_options)
driver.get("...")
sub_popen.kill()
# kill_selenium(9222)
# cookies = {c['name']:c['value'] for c in driver.get_cookies()}
return ';'.join([f"{c['name']}={c['value']}" for c in driver.get_cookies()])
文章來源地址http://www.zghlxwxcb.cn/news/detail-566543.html
文章來源:http://www.zghlxwxcb.cn/news/detail-566543.html
到了這里,關(guān)于selenium 接管可保存用戶數(shù)據(jù)瀏覽器(edge)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!