pip install browsermob-proxy
先装一个包
要求jdk1.8以上的环境变量依赖
ps:如果是刚配的环境记得,重启一下

下载java端BrowserMob-Proxy包:http://bmp.lightbody.net/

直接拿来主义(在py配置的时候要记得写上browsermob-proxy.bat地址)

比如说,我想随便抓一个js的response看看

确实可以看到一些粗略的内容,细致的js代码还需要探索一下
from browsermobproxy import Server
from selenium import webdriver
import time
import pprint
class ProxyManger:
__BMP = r"C:\Users\Irving\Desktop\echain\browsermob-proxy-2.1.4-bin\browsermob-proxy-2.1.4\bin\browsermob-proxy.bat"
def __init__(self):
self.__server = Server(ProxyManger.__BMP)
self.__client = None
def start_server(self):
self.__server.start()
return self.__server
def start_client(self):
self.__client = self.__server.create_proxy(params={"trustAllServers": "true"})
return self.__client
@property
def client(self):
return self.__client
@property
def server(self):
return self.__server
if __name__=="__main__":
# 开启Proxy
proxy = ProxyManger()
server = proxy.start_server()
client = proxy.start_client()
# 配置Proxy启动WebDriver
options = webdriver.ChromeOptions()
options.add_argument("--proxy-server={}".format(client.proxy))
options.add_argument('--ignore-certificate-errors')
options.add_argument('--headless')
#chromePath = r"D:\AzRjN\anaconda3_7\envs\demo36\Lib\site-packages\selenium\webdriver\chrome\chromedriver.exe"
driver = webdriver.Chrome(chrome_options=options)
# 获取返回的内容
client.new_har("baidu.com", options={'captureHeaders': True, 'captureContent': True})
driver.get("https://www.baidu.com/")
time.sleep(3)
result = client.har
print(result)
for entry in result['log']['entries']:
_url = entry['request']['url']
print("请求地址:", _url)
if "https://pss.bdstatic.com/r/www/cache/static/protocol/https/amd_modules/san/dist/san_5017f11.js" in _url:
_response = entry['response']
_content = _response['content']
print("---------https://pss.bdstatic.com/r/www/cache/static/protocol/https/amd_modules/san/dist/san_5017f11.js 请求响应内容:", _response)
server.stop()
selenium一边自动化操作
browsermobproxy一边抓包