[英]How to use browsermob with python-selenium behind a corporate proxy?
我的測試環境在公司代理下(“ proxy.ptbc.std.com:2538 ”)。我想在 YoTube 上打開特定視頻一段時間(例如 200 秒)並為每次訪問捕獲 har 文件,該過程重復多次以進行大規模測試。 我嘗試了此處找到的不同示例,但 firefox / chrome 瀏覽器無法連接到互聯網,因為它們位於代理后面。
如何在公司代理后面運行“python-selenium + browsermobproxy”並捕獲每個實例的 har 文件。
示例代碼:
from browsermobproxy import Server
server = Server("C:\\Utility\\browsermob-proxy-2.1.4\\bin\\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")
driver.get("http://www.google.co.in")
proxy.har # returns a HAR JSON blob
server.stop()
driver.quit()
任何幫助,將不勝感激
有時您會希望通過上游代理服務器路由請求。 在這種情況下,通過將 httpProxy 參數添加到您的創建代理請求來指定您的代理服務器:
[~]$ curl -X POST http://localhost:8080/proxy?httpProxy=yourproxyserver.com:8080 {"port":8081}
根據browsermob-proxy 的源代碼 API for Python
def create_proxy(self, params=None):
"""
Gets a client class that allow to set all the proxy details that you
may need to.
:param dict params: Dictionary where you can specify params
like httpProxy and httpsProxy
"""
params = params if params is not None else {}
client = Client(self.url[7:], params)
return client
因此,您需要做的就是根據您使用的代理(http 或 https)在create_proxy
中指定params
:
from browsermobproxy import Server
from selenium import webdriver
import json
server = Server("C:\\Utility\\browsermob-proxy-2.1.4\\bin\\browsermob-proxy")
server.start()
# httpProxy or httpsProxy
proxy = server.create_proxy(params={'httpProxy': 'proxy.ptbc.std.com:2538'})
profile = webdriver.FirefoxProfile()
profile.set_proxy(proxy.selenium_proxy())
driver = webdriver.Firefox(firefox_profile=profile)
proxy.new_har("google")
driver.get("http://www.google.co.in")
result = json.dumps(proxy.har, ensure_ascii=False)
print(result)
server.stop()
driver.quit()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.