python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python操作/调试已打开的Chrome

Python操作/调试已打开的Chrome方法步骤

作者:就叫飞六吧

为什么普通启动的Chrome不能直接调试,因为默认不开放DevTools远程调试端口,Selenium无法附加,本文教你从Chrome 136限制出发,创建独立用户目录的调试快捷方式,开启9222端口,并正确连接Selenium进行自动化抓取,同时提供安全提示,需要的朋友可以参考下

为什么普通启动的 Chrome 不能直接调试?

用户平时从桌面、任务栏或开始菜单启动的 Chrome,默认不会开放 DevTools 远程调试端口。

因此,Selenium 等自动化程序不能临时附加到这个已经运行的普通浏览器实例,也无法稳定读取当前页面的 DOM、点击元素或抓取结构化数据。

远程调试端口必须在 Chrome 启动时开启,无法在 Chrome 已经启动后再动态补上。

为什么要单独维护一个调试 Chrome?

从 Chrome 136 开始,--remote-debugging-port 不能用于 Chrome 默认用户资料目录,必须同时指定一个非默认目录:

chrome.exe --remote-debugging-port=9222 --user-data-dir="D:\dev\chrome_debug_profile"

所以建议保留两个相互隔离的 Chrome 使用方式:

两者的 Cookie、登录状态、历史记录和扩展等数据相互独立。需要抓取登录后页面时,应在调试 Chrome 中完成登录。

正确的操作顺序

  1. 双击桌面上的 Chrome 调试模式 9222 快捷方式。
  2. 在这个 Chrome 中打开目标网页,必要时先登录。
  3. 等待页面加载完成。
  4. 运行自动化或抓取程序:
python scrape_active_page.py
  1. Selenium 附加到已启动的调试 Chrome,然后才可以读取 DOM、查找元素、点击按钮、填写表单和抓取数据。

简单说,正确顺序是:

先启动带调试端口的 Chrome
        ↓
在该 Chrome 中打开目标页面
        ↓
再运行 Python/Selenium 连接并操作

如何确认调试端口已开启?

在浏览器中访问:

http://127.0.0.1:9222/json/version

如果能看到 JSON 数据,说明调试端口已经可用。如果无法访问,通常是启动方式不正确,或者当前打开的是普通 Chrome。

py直接连9222端口即可

安全提示

到此这篇关于Python操作/调试已打开的Chrome方法步骤的文章就介绍到这了,更多相关Python操作/调试已打开的Chrome内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文