from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service

def start_browser_with_proxy():
    chrome_options = Options()
    proxy_server = "127.0.0.1:8080"
    chrome_options.add_argument(f'--proxy-server=http://{proxy_server}')

    # 防止被检测为自动化
    chrome_options.add_argument('--disable-blink-features=AutomationControlled')
    chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
    chrome_options.add_experimental_option('useAutomationExtension', False)

    # 提升稳定性（尤其在 Linux/Docker）
    chrome_options.add_argument('--no-sandbox')
    chrome_options.add_argument('--disable-dev-shm-usage')

    # ✅ 使用 webdriver-manager 自动下载并管理 chromedriver
    service = Service(ChromeDriverManager().install())
    driver = webdriver.Chrome(service=service, options=chrome_options)

    try:
        print(f"正在启动浏览器，使用代理: {proxy_server}")
        driver.get("http://httpbin.org/ip")
        print("浏览器已启动。请检查页面显示的IP是否为你代理的IP。")
        print("当前页面源码前200字符：")
        print(driver.page_source[:200])
    except Exception as e:
        print(f"发生错误: {e}")
        import traceback
        traceback.print_exc()

    input("按回车键关闭浏览器...")
    driver.quit()

if __name__ == "__main__":
    start_browser_with_proxy()