import utils from loguru import logger logger.add("log/network.log", rotation="100 MB", encoding="utf-8", filter=lambda record: record["extra"].get("name") == "network") network_log = logger.bind(name="network") def network_listener(tab, targets=[]): try: # 监听网络 network_log.info("[network.log] 开始监听网络") tab.listen.start(targets=targets) for log in tab.listen.steps(): network_log.info("=" * 50) network_log.info(f"[network.log] {log.method} {log.url}") network_log.info("=" * 50 + '\t' + "request") network_log.info("=" * 50 + '\t' + "request.headers") for key in log.request.headers.keys(): network_log.info("{}, {}", key, log.request.headers[key]) if 'Content-Type' in log.request.headers: reqType = log.request.headers['Content-Type'] if reqType == 'application/json': network_log.info("=" * 50 + '\t' + "request.body") network_log.info(utils.format_json(log.request.body)) # print(vars(log.request)) for key in log.response.headers.keys(): network_log.info("{}, {}", key, log.response.headers[key]) if 'Content-Type' in log.response.headers: respType = log.response.headers['Content-Type'] if respType == 'application/json': network_log.info("=" * 50 + '\t' + "response.body") network_log.info(utils.format_json(log.response.body)) # print(vars(log.response)) except Exception as e: network_log.error("[network.log] 监听网络出错") network_log.error(e) finally: network_log.info("[network.log] 停止监听网络") tab.listen.stop()