selenium_keyan/selenium/config.py

51 lines
1.9 KiB
Python
Raw Normal View History

import time
import random
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
import os
api_info = {
"model": "gpt-4.1-2025-04-14",
"base_url": "https://api.nuwaapi.com/v1",
"api_key": "sk-gZsDzmPpOh1UpVzLzkh9dP05v0nLv9iR0HCazhlO7ZNZ3Ier"
}
# chrome浏览器以及驱动配置
CHROME_BINARY_PATH = os.environ.get("CHROME_BINARY_PATH", "/usr/bin/google-chrome")
CHROMEDRIVER_PATH = os.environ.get("CHROMEDRIVER_PATH", "/usr/local/bin/chromedriver")
# 最大并发数
MAX_CONCURRENT_BROWSERS = 3
#创建浏览器driver
def create_browser():
options = webdriver.ChromeOptions()
options.binary_location = CHROME_BINARY_PATH
# 每个实例随机调试端口
options.add_argument(f"--remote-debugging-port={random.randint(9222, 9322)}")
# options.add_argument("--headless=new")
options.add_argument("--disable-gpu")
options.add_argument("--disable-software-rasterizer")
options.add_argument("--no-sandbox")
options.add_argument("--disable-setuid-sandbox")
options.add_argument("--window-size=1920,1080")
options.add_argument("--disable-dev-shm-usage")
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option("useAutomationExtension", False)
prefs = {
"download.prompt_for_download": False,
"plugins.always_open_pdf_externally": True,
"profile.default_content_setting_values.automatic_downloads": 1,
"safebrowsing.enabled": True,
"safebrowsing.disable_download_protection": True
}
options.add_experimental_option("prefs", prefs)
return webdriver.Chrome(service=Service(CHROMEDRIVER_PATH), options=options)
def _scroll_into_view(driver, el):
try:
driver.execute_script("arguments[0].scrollIntoView({block:'center', inline:'center'});", el)
time.sleep(0.2)
except Exception:
pass