栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【selenium自动化过程中的api抓包】browsermobproxy的安装和配置

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【selenium自动化过程中的api抓包】browsermobproxy的安装和配置

第一步
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:UsersIrvingDesktopechainbrowsermob-proxy-2.1.4-binbrowsermob-proxy-2.1.4binbrowsermob-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:AzRjNanaconda3_7envsdemo36Libsite-packagesseleniumwebdriverchromechromedriver.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一边抓包

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/999888.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号