You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac系统下如何修复‘无法连接Browsermob-Proxy’问题?

解决Mac上Browsermob-Proxy无法连接Python Wrapper的问题

我之前在Mac上用Browsermob-Proxy配合Selenium时也碰到过一模一样的错误,大概率是路径不对、Java环境不兼容或者Apple Silicon架构适配的问题,给你几个具体的修复步骤:

1. 修正Browsermob-Proxy的启动路径

你代码里指定的路径是源码目录下的脚本,不是解压后可直接运行的编译版本。2.1.4版本的正确启动脚本路径应该是解压后的bin目录下的browsermob-proxy,把Server初始化的路径改成:

server = Server("/Users/adietz/Projects/Invest/browsermob/browsermob-proxy-2.1.4/bin/browsermob-proxy")

2. 检查Java环境是否符合要求

Browsermob-Proxy 2.1.4需要Java 8或更高版本,打开终端运行:

java -version

如果版本低于Java 8,需要安装对应版本;如果是Apple Silicon(M1/M2)的Mac,还需要用Rosetta运行Java,你可以测试下:

arch -x86_64 java -version

如果这个命令能正常输出版本,那可以在启动Browsermob时强制用x86架构,修改Server的启动命令:

server = Server(
    command=['arch', '-x86_64', "/Users/adietz/Projects/Invest/browsermob/browsermob-proxy-2.1.4/bin/browsermob-proxy"],
    options={"port": 9090}
)

3. 避免端口冲突(可选但推荐)

有时候默认端口会被其他进程占用,你可以指定一个固定端口,同时在启动前检查端口是否被占用:

lsof -i :9090

如果有进程占用,用kill -9 <PID>杀掉对应的进程,再运行代码。

4. 完整的修复后代码示例

from browsermobproxy import Server
from selenium import webdriver

# 替换为你的browsermob-proxy实际路径
proxy_path = "/Users/adietz/Projects/Invest/browsermob/browsermob-proxy-2.1.4/bin/browsermob-proxy"

# 适配Apple Silicon的启动命令
server = Server(
    command=['arch', '-x86_64', proxy_path],
    options={"port": 9090}
)

try:
    server.start()
    proxy = server.create_proxy()

    # 配置Firefox代理
    profile = webdriver.FirefoxProfile()
    profile.set_proxy(proxy.selenium_proxy())
    driver = webdriver.Firefox(firefox_profile=profile)

    # 开始捕获HAR数据
    proxy.new_har("google")
    driver.get("http://www.google.co.in")
    
    # 打印捕获的HAR数据,验证是否成功
    print("捕获的HAR数据:", proxy.har)

finally:
    # 确保资源被正确释放,避免残留进程
    server.stop()
    driver.quit()

按照上面的步骤修改后,应该就能正常启动Browsermob-Proxy并捕获请求了。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:29:29