一、前言
0、作用:保留登录数据
1、浏览器:edge 浏览器(chorm类似)
2、环境:安装 selenium 与 selenium edge 引擎
下载 selenium:
pip install selenium
根据 edge 版本找到对应的引擎:
edge: https://msedgewebdriverstorage.z22.web.core.windows.net/
chorm: http://chromedriver.storage.googleapis.com/index.html
二、步骤
1、接管本地浏览器
相关包
from selenium import webdriver
import os,subprocess,psutil
启动浏览器
python程序启动:
# 切换到浏览器安装地址
os.chdir("C:\Program Files (x86)\Microsoft\Edge\Application")
# 启动9222端口以D:\chrome\seleniumEdge路径作为自定义用户数据目录
sub_popen = subprocess.Popen('.\msedge.exe --remote-debugging-port=9222 --user-data-dir="D:\chrome\seleniumEdge"')
cmd启动:
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)
进行相关自动化操作
driver.get("....")
driver.quit()
关闭浏览器
def kill_selenium(port):
'''根据port号查询pid以关闭程序
'''
# 进程列表
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:
# 删除父进程和子进程
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()
四、案例:更新某企查验证码后的cookie(已登录状态)
def get_cookies(self):
'''更新cookie
'''
# 切换路径启动浏览器
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()])
文章来源地址https://www.toymoban.com/news/detail-566543.html
文章来源:https://www.toymoban.com/news/detail-566543.html
到了这里,关于selenium 接管可保存用户数据浏览器(edge)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!