如何重置Python的浏览器代理服务器模块使用的Har文件?

时间:2019-06-24 18:39:10

标签: python python-3.x selenium selenium-webdriver browsermob-proxy

我正在将browser-mob-proxy模块和硒用于python,以便记录网站在使用时发送的某些内容。

我正在做的是使用browser-mob-proxy创建服务器,然后为该服务器创建代理。然后,我创建一个HAR来记录数据。以后我会将这些数据用于其他用途。

我想知道是否有一种方法可以重置HAR文件,使其为空,或者是否必须创建一个新的HAR来存储新数据。

代理已分配给使用chrome驱动程序的硒浏览器。

1 个答案:

答案 0 :(得分:0)

我在测试框架中执行此操作,因此每个测试都有自己的HAR文件用于调试。即使他们使用相同的浏览器。

您要查找的命令是“ new_har”。这将创建一个新会话,并开始记录到新的HAR文件。您也可以为会话指定名称。我通常会先获取旧的HAR,然后在清除并开始新会话之前将其保存。但是,如果您只想清除代理日志,则不必这样做。

这是使用Python模块的示例。

from browsermobproxy import Server
server = Server("path/to/browsermob-proxy")
server.start()
proxy = server.create_proxy()

from selenium import webdriver
profile  = webdriver.FirefoxProfile()
profile.set_proxy(proxy.selenium_proxy())
driver = webdriver.Firefox(firefox_profile=profile)

proxy.new_har("google") # Start first session
driver.get("http://www.google.co.uk")
proxy.har # returns a HAR JSON blob for first session

proxy.new_har("Yahoo") # Start second session
driver.get("http://www.yahoo.co.uk")
proxy.har # returns a HAR JSON blob for second session

server.stop()
driver.quit()