python-drission-page-spider/main.py
2025-03-19 20:26:49 +08:00

54 lines
1.3 KiB
Python

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)