Files
datie-bom/browser_login/do_search.py

46 lines
1.6 KiB
Python

import sys
import time
import json
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent))
from login import get_page
from config import OUTPUT_DIR
import datetime
page = get_page(port=9222)
# 在当前页面找
print("当前报表 URL:", page.url)
btn = page.ele('#onSearch')
if btn:
print("点击查询按钮")
page.listen.start()
btn.click()
time.sleep(5)
packets = page.listen.steps()
for p in packets:
if p.method == 'POST' and ('api' in p.url.lower() or 'Report' in p.url or 'Data' in p.url or 'Search' in p.url):
if p.response and p.response.body:
try:
body = p.response.body
data = body if isinstance(body, (dict, list)) else json.loads(body)
if isinstance(data, dict) and 'result' in data:
res = data['result']
print("拦截到数据API:", p.url)
print("总条数:", res.get('totalCount'))
ts = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
path = OUTPUT_DIR / f"report_abnormal_{ts}.json"
with open(path, "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=2)
print("数据已保存至:", path)
sys.exit(0)
except Exception as e:
pass
print("没有找到匹配的数据")
else:
print("没有找到 查询 按钮")