browsermob-proxy
BrowserMob Proxy是一个用户操作浏览器代理的工具,它可以用于记录和分析HTTP请求和响应。主要用途之一是用于自动化测试,例如本文所写。
browsermob-proxy的安装
1. 下载browsermob-proxy.bat
browsermob-proxy下载

2.安装python模块browsermob-proxy
pip install browsermob-proxy
具体使用
第一步:开启代理

第二步:


第三步:关闭BrowserMob Proxy和selenium

完整代码
from browsermobproxyimport Server
from seleniumimport webdriver
from selenium.webdriver.chrome.optionsimport Options
bmp_path =r"browsermob-proxy.bat的路径"
server = Server(bmp_path)
server.start()
proxy = server.create_proxy()
配置Selenium使用BrowserMob Proxy
chrome_options = Options()
chrome_options.add_argument("--proxy-server={0}".format(proxy.proxy))
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
chrome_options.add_argument("--ignore-certificate-errors")#解决:您的连接不是私密连接
初始化WebDriver
driver = webdriver.Chrome(executable_path=r'chromedriver.exe的路径', options=chrome_options)
设置一个新的Har来捕获请求
proxy.new_har("test", options={'captureHeaders':True, 'captureContent':True})
driver.get("网站链接")
#重要:此处操作为对目标页面的一些操作
#例如我这边需要使用selenium到对应要获取数据的网站上,然后打开一个可以获取到Authorization的页面
driver.find_element_by_id("username").send_keys("****")
driver.find_element_by_id("password").send_keys("*****")
driver.find_element_by_id("submit_psd").click()
driver.get("*****/productManage")
获取HAR数据
har = proxy.har
遍历HAR中的请求并查找Auth字段
for entryin har['log']['entries']:
request = entry['request']
url = request['url']
if "pageList" in url:
headers = request['headers']
for hin headers:
if h.get("name")=="Authorization":
auth = h["value"]#这个是Authorization
print(auth)
关闭BrowserMob Proxy和Selenium
server.stop()
driver.quit()
版权归原作者 Alice0424Xiaoq 所有, 如有侵权,请联系我们删除。