微信浏览器的F12大法!学会随意修改!

程序员,尤其是前端程序员可能都知道什么是F12大法:按下F12,启动浏览器的调试窗口,网页的秘密一览无遗。

通过浏览器的调试窗口,我们可以看到浏览器和web服务器的所有通信数据,网页的源代码、Ajax请求、Cookie、Session信息都能尽在掌握,这对于我们分析前端问题,窥探通信数据都非常有帮助。

图片

但你有没有想过,你在打开这篇文章的时候,微信和它的后端服务器传输了什么内容?评论留言是怎么获取的?打赏信息又是怎么加载的?微信不允许外链又是怎么实现的?

但遗憾的是,在浏览器中打开公众号文章时候,包括阅读、点赞、在看、留言、赞赏在内的很多数据都没有进行展示,这些数据只能在微信客户端里面才会出现,我想很有可能是为了防止爬虫获取到这些信息。

如果能够像在浏览器中那样调试微信公众号文章,就能看到这些信息了。

好消息是:还真有办法!

说明:本文针对的是微信PC客户端

微信的PC端其实内置了一个浏览器:

image-20210225094847324

点击公众号文章后,将弹出一个窗口打开文章,负责展示,这

<think>好的,用户之前问过怎么用subprocess打开Edge,现在他们想知道如何在路径中添加特殊参数--remote-debugging-port=9222。首先,我需要回忆一下subprocess模块的用法,特别是如何传递命令行参数。 用户之前的回答中提到了直接启动Edge和通过URL启动,现在需要添加调试端口参数。这时候应该考虑在启动Edge的可执行文件路径后添加这个参数。根据subprocess的文档,参数应该作为列表传递,每个参数是一个元素。 所以,正确的做法应该是在调用subprocess.Popen或者subprocess.run的时候,将msedge.exe的路径作为第一个元素,接着是--remote-debugging-port=9222,然后是其他参数比如URL。例如:[edge_path, '--remote-debugging-port=9222', url]。 需要注意,参数顺序是否正确,确保调试端口参数放在URL前面,这样Edge才会正确识别。同时,是否需要使用shell=True?之前的方法中,有些用了shell=True,有些没用。这里可能需要根据具体情况决定,但通常在这种情况下不需要,除非路径中有空格需要处理,但使用列表形式传递参数通常更安全,避免shell注入攻击。 另外,用户可能需要同时打开某个网址,所以示例中应该包含URL参数,以展示如何组合使用。同时,提醒用户这个参数的作用,用于远程调试,可能会打开一个特定的端口,需要注意安全性问题。 还需要考虑不同操作系统下的路径问题,比如Windows和macOS,但用户之前的问题主要集中在Windows上,所以可能主要展示Windows的示例。不过,如果用户跨平台使用,可能需要不同的处理方式,但暂时先以Windows为主。 最后,检查是否有语法错误,比如字符串是否正确转义,路径中的空格是否处理妥当,使用原始字符串(r前缀)来避免转义问题。同时,异常处理是否需要加强,比如路径错误或参数错误的情况,但用户可能更关注如何正确添加参数,所以示例中可以简化异常处理部分。 总结,正确的代码示例应该是在subprocess调用中加入--remote-debugging-port参数,并确保参数顺序正确,同时说明这个参数的作用和使用场景。</think>要在启动Microsoft Edge时添加调试参数`--remote-debugging-port=9222`,可以通过`subprocess`模块将参数直接传递给浏览器可执行文件。以下是具体实现: --- ### **解决方案** ```python import subprocess # Edge路径(Windows默认安装位置) edge_path = r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" # 启动参数(调试端口+目标网址) args = [ edge_path, "--remote-debugging-port=9222", # 启用远程调试端口 "https://www.bing.com" # 可选:指定打开的网址 ] # 启动浏览器(非阻塞模式) try: subprocess.Popen(args) except FileNotFoundError: print("错误:Edge路径不存在,请检查安装位置") ``` --- ### **关键细节说明** 1. **参数顺序**: - `--remote-debugging-port=9222` **必须**放在浏览器路径之后、网址之前。 - 错误示例:`[edge_path, url, "--remote-debugging-port=9222"]`(参数可能被忽略) 2. **调试用途**: - 此参数会启动一个支持Chrome DevTools协议的实例,常用于: - 自动化测试(如Selenium配合使用) - 网页爬虫调试 - 浏览器扩展开发 3. **跨平台兼容性**: - **macOS/Linux**需调整路径: ```python edge_path = "/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge" subprocess.Popen([edge_path, "--remote-debugging-port=9222"]) ``` 4. **验证是否生效**: - 访问`http://localhost:9222/json/version`,若返回浏览器信息则说明端口已开启。 --- ### **替代方案:使用`webbrowser`模块(简化版)** 若不需要精细控制,可使用内置库: ```python import webbrowser webbrowser.get("windows-default").open("http://localhost:9222") # 注意:此方法无法直接添加--remote-debugging-port参数 ``` --- ### **常见问题** - **端口冲突**:确保`9222`端口未被其他进程占用。 - **路径错误**:若报错`FileNotFoundError`,需手动确认Edge安装路径(如更新到Edge Chromium版后路径可能不同)。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值