Python browsermobproxy中的Server.stop()如何关闭java进程

Python 当我们使用 browsermobproxy中的Server.stop()时,发现无法完全关闭,因为无法结束java进程,在工作中最后需要quit() 关闭整个窗口时,无法关闭。以下记录一下处理方法:
找到 server.py文件并修改如下:(注意注释部分)

    def stop(self):
        """
        This will stop the process running the proxy
        """
        if self.process.poll() is not None:
            return

        try:
            self.process.kill()
            self.process.wait()
            ###添加以下内容
            find_port = 'netstat -aon|findstr %s' % self.port
            result = os.popen(find_port)
            text = result.read()
            pid_line = text.split('\n', 1)[0]
            pid = pid_line.replace(" ","").split("LISTENING")[1]
            find_kill= 'taskkill -f -pid %s' % pid
            result = os.popen(find_kill)
            cmd = result.read()
            cmd.close()
            ###添加以上内容
        except AttributeError:
            # kill may not be available under windows environment
            pass

这样,在使用 server.stop()就可以把相关的进程清理干净啦! 

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BrowserMob Proxy 是一个基于 Java 的代理服务器,可以用来监控、分析和修改 HTTP(S) 流量。它提供了一个 REST API,可以方便地对代理进行配置和控制。同时,BrowserMob Proxy 还提供了一个 Python 客户端,可以与 Python 程序集成,方便地进行自动化测试、爬虫等任务。 使用 BrowserMob Proxy,您可以实现以下功能: - 拦截 HTTP(S) 请求和响应,对其进行修改和重定向; - 访问 HTTP(S) 流量的详细信息,如请求和响应头、请求参数、响应正文等; - 分析 HTTP(S) 流量,如计算请求和响应时间、统计请求次数、响应码等; - 生成 HAR(HTTP Archive)文件,记录 HTTP(S) 流量的详细信息,方便分析和共享。 BrowserMob ProxyPython 客户端可以通过 pip 安装: ``` pip install browsermob-proxy ``` 安装完成后,您就可以在 Python 程序使用 BrowserMob Proxy 了。例如,您可以使用以下代码启动代理服务器: ```python from browsermobproxy import Server server = Server("path/to/browsermob-proxy") server.start() proxy = server.create_proxy() ``` 其,`path/to/browsermob-proxy` 是 BrowserMob Proxy 的安装路径。 启动代理服务器后,您可以将其配置到浏览器使用,从而实现拦截和修改 HTTP(S) 流量的功能。例如,您可以使用以下代码启动 Chrome 浏览器,并配置其使用代理: ```python from selenium import webdriver chrome_options = webdriver.ChromeOptions() chrome_options.add_argument("--proxy-server={0}".format(proxy.proxy)) driver = webdriver.Chrome(chrome_options=chrome_options) ``` 这样,您就可以在 Python 程序使用 BrowserMob Proxy 来拦截、分析和修改 HTTP(S) 流量了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值