在问这个时我可能显得天真。对于我们的一些测试场景,我需要检索各种HTTP代码。现在我知道Selenium无法独自完成,我们必须使用第三方资源 - 可能是像Browsermob这样的代理。
是否有人已就此工作过。我已经完成了各种教程 - 比如来自here的教程,但我似乎无法使用它来解决这个问题。
我使用pip
方法安装了Browsermob,因此我将路径设为
from browsermobproxy import Server
server = Server('/usr/local/lib/python3.4/dist-packages/browsermobproxy')
但是,我收到了例外
Exception: Browsermob-Proxy binary couldn't be found in path provided: /usr/local/lib/python3.4/dist-packages/browsermobproxy
我的问题是 - 有什么 - 我可能在这里找不到任何文件?我是否需要下载任何其他文件或我的路径不正确?
答案 0 :(得分:6)
启动时我对此感到有些困惑,但我假设您使用pip安装了browsermobproxy软件包。您还需要实际下载browsermob-proxy二进制文件(此处为https://bmp.lightbody.net/),然后从您的python脚本中指向 it 。
我正在使用虚拟环境,所以我把它放在这里:
/Users/username/Envs/ScrapeProj/bin/browsermob-proxy-2.1.2/bin/browsermob-proxy
如果收到错误消息:
Error: JAVA_HOME is not defined correctly.
在终端中运行这些命令:
export JAVA_HOME=$(/usr/libexec/java_home)
export PATH=$JAVA_HOME/jre/bin:$PATH
答案 1 :(得分:0)
不确定您是否了解browsermob-proxy-py,它是客户端实现而不是服务器。所以你需要先安装服务器browsermob-proxy(https://github.com/lightbody/browsermob-proxy)并使用默认端口运行代理。
答案 2 :(得分:0)
类似question
仔细检查您的路径、变量、安装等
您也可以尝试将实际目录添加到PATH
echo 'export PATH=$PATH:/usr/local/lib/python3.4/dist-packages' >> ~/.bashrc
这样就不用在Server实例上手动指定路径arg
from browsermobproxy import Server
server = Server()