from DrissionPage import Chromium, ChromiumOptions, SessionPage from concurrent.futures import ThreadPoolExecutor import atexit import json options = ChromiumOptions() # 无头模式 # options.headless() browser = Chromium(options) tab = browser.latest_tab def console_listener(tab): # 监听控制台 tab.console.start() steps = tab.console.steps() for log in steps: # print("[console.log]", log) print(f"[console.log] {log.text}") def network_listener(tab): # 监听网络 tab.listen.start(targets="192.168.31.139:8126") for log in tab.listen.steps(): try: # print("[network.log]", log) print(vars(log)) # request = json.dumps(log.request) # print(request) # response = json.dumps(log.response) print(f"[network.log] {log.method} {log.url} {'request'} {''}") except Exception as e: print(e) executor = ThreadPoolExecutor(max_workers=2) executor.submit(console_listener, tab) executor.submit(network_listener, tab) tab.get(url='http://127.0.0.1:8080/pages/index/shopIndex') tab.change_mode() items = tab.eles("t:body") for item in items: print(item) def exit(): print('exit') browser.quit() executor.shutdown() atexit.register(exit)