Files
MoFin/scripts/test_api.py
T

37 lines
1.4 KiB
Python

"""Test Eastmoney API response time for HK stocks"""
import urllib.request, json, time
codes = ['00700', '01888', '00981']
UA = 'Mozilla/5.0'
for code in codes:
url = f"https://push2.eastmoney.com/api/qt/stock/get?secid=116.{code}&fields=f43,f170&fltt=2"
start = time.time()
try:
req = urllib.request.Request(url, headers={"User-Agent": UA})
with urllib.request.urlopen(req, timeout=30) as r:
resp = json.loads(r.read().decode("utf-8"))
elapsed = time.time() - start
price = resp.get('data', {}).get('f43', '?')
print(f"{code}: {elapsed:.1f}s, price={price}, rc={resp.get('rc')}")
except Exception as e:
elapsed = time.time() - start
print(f"{code}: {elapsed:.1f}s, ERROR: {type(e).__name__}: {e}")
# Also test Tencent fallback
print("\nTencent fallback:")
url = "http://qt.gtimg.cn/q=hk00700,hk01888,hk00981"
start = time.time()
try:
req = urllib.request.Request(url, headers={"User-Agent": UA})
with urllib.request.urlopen(req, timeout=10) as r:
text = r.read().decode("gbk")
elapsed = time.time() - start
print(f"Tencent: {elapsed:.1f}s, {len(text)} bytes")
# Parse first line
line = text.strip().split('\n')[0]
print(f" sample: {line[:80]}...")
except Exception as e:
elapsed = time.time() - start
print(f"Tencent: {elapsed:.1f}s, ERROR: {e}")