启动一个 可调试的 Chrome 实例,采集

你可以:

  1. 打开一个真实浏览器(非 headless),使用你的账户登录;

  2. 访问商品详情页,手动通过滑块验证;

  3. 使用 Selenium 连接这个真实浏览器,实现后续自动化。

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    # 启动Chrome,指定调试端口:先手动运行下面命令打开浏览器
    # chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\profile"
    
    options = Options()
    options.debugger_address = "127.0.0.1:9222"  # 连接你手动登录的 Chrome
    
    driver = webdriver.Chrome(options=options)
    
    # 访问商品详情页,此时已带登录、cookie、滑块验证通过的状态
    driver.get("https://www.xxx.com/item/XXXXX.html")

我重开一个进程,如何运行,可以共用一个吗?

chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\profile"

  这会启动一个 可调试的 Chrome 实例,并绑定到 9222 端口。所有通过该端口连接的 Selenium 实例都会共享这个浏览器,包括登录状态、Cookie、窗口等。

如果你想“重开一个进程”共用它,你可以这么做:

Python 脚本里,每次只需这样创建 webdriver:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.debugger_address = "127.0.0.1:9222"

driver = webdriver.Chrome(options=chrome_options)

  

✅ 这样做的优势:

  • 共用登录状态(比如登录后的 AliExpress)

  • 多个脚本可以并发复用这个浏览器(线程或进程)

  • 防止重复打开新浏览器窗口

注意事项:

  1. 只能有一个 Chrome 使用同一个 --remote-debugging-port

  2. 如果你用 多个 Python 脚本同时运行,可以都连接到同一个 9222但要小心操作同一个页面会互相干扰

  3. 如果你需要多进程并发,建议每个脚本操作不同的 tab 或页面,或者使用不同端口 + user-data-dir 启多个浏览器实例

想开多个独立的 Chrome 进程也行,比如:

chrome.exe --remote-debugging-port=9223 --user-data-dir="C:\selenum\profile2"

  然后用:

chrome_options.debugger_address = "127.0.0.1:9223"

  就能连到新的浏览器。

posted @ 2025-04-18 08:56  楼前竹  阅读(207)  评论(0)    收藏  举报