赞
踩
-
- def get_options():
- options = ChromeOptions()
- options.add_argument("--disable-blink-features=AutomationControlled")
- # options.add_experimental_option("excludeSwitches", ["enable-automation"])
- # options.add_experimental_option("useAutomationExtension", False)
- options.add_argument("--disable-extensions")
- options.add_argument("--no-default-browser-check")
- options.add_argument("--no-first-run")
- options.add_argument("--disable-popup-blocking")
- options.add_argument("--disable-default-apps")
- options.add_argument("--disable-infobars")
- # options.add_argument("--disable-gpu")
- # options.add_argument("--disable-notifications")
- options.add_argument("--disable-translate")
- options.add_argument("--disable-device-discovery-notifications")
- options.add_argument("--no-sandbox")
- # options.add_argument("--disable-dev-shm-usage")
- options.add_argument("--window-size=1920x1080")
- options.add_argument("--disable-features=VizDisplayCompositor")
- return options
-
- def getchromeversion():
- if 'win' in sys.platform:
- import winreg
- key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r'Software\Google\Chrome\BLBeacon')
- chrome_version = winreg.QueryValueEx(key, 'version')[0]
- return chrome_version
- else:
- from webdriver_manager.utils import get_browser_version_from_os
- browserVersion = get_browser_version_from_os("google-chrome") # 获取当前系统chrome浏览器的版本号
- print(f'Chrome version is {browserVersion}')
- mainBrowserVersion = browserVersion.split(".")[0] # 获取chrome浏览器的主版本号
- return browserVersion
-
-
- def get_session_url(port):
- url = f'http://127.0.0.1:{port}/json/version'
- try:
- res = requests.get(url)
- print(res.text)
- webSocketDebuggerUrl = json.loads(res.text)['webSocketDebuggerUrl']
- except:
- # 命令行启动
- time.sleep(random.randint(4, 6))
-
-
- def start_brower():
- from undetected_chromedriver import Chrome, ChromeOptions, find_chrome_executable
- user_data_name = "chrome1"
- port = 9315
- user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36'
- current_path = os.path.dirname(os.path.realpath(sys.argv[0]))
- # 浏览器用户配置文件
- user_data_dir = os.path.join(current_path, user_data_name)
- # 浏览器版本号
- version = getchromeversion().split('.')[0]
- # 下载驱动
- currentpath = os.path.dirname(os.path.realpath(sys.argv[0]))
- executable_path = os.path.join(currentpath, 'chromedriver_win32', f'chromedriver_{version}.exe')
- if not os.path.exists(executable_path):
- # get_chromedriver_version(path, version)
- print('自动下载驱动')
- # 浏览器路径
- chrome_path = find_chrome_executable()
- print('executable_path:', executable_path)
- print('user_data_dir:', user_data_dir)
- print('chrome_path:', chrome_path)
-
- option = get_options()
- option.add_argument(fr'--user-data-dir="{user_data_dir}"')
- option.add_argument(f"--user-agent={user_agent}")
- option.debugger_address = f"127.0.0.1:{port}"
- driver = Chrome(options=option, executable_path=executable_path)
- print(driver.title)
- time.sleep(2)
- driver.get('https://blog.csdn.net/lwdfzr/article/details/135410359')
- time.sleep(random.randint(3, 5))
undetected_chromedriver 通过端口控制已打开的浏览器时,会打开一个多余的空白窗口,
鼠标放在Chrome() 按ctrl+B查看源码,找到这段代码,注释掉
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。