fix: 基本面直接从腾讯API拉(随时可用)
This commit is contained in:
@@ -83,12 +83,28 @@ def _build_full_analysis(code, entry, result):
|
||||
macro_desc = "腾讯实时 " + " ".join(_parts[:3])
|
||||
except:
|
||||
pass
|
||||
# 基本面
|
||||
_f = _db.execute("SELECT pe, pb, eps FROM stock_fundamentals WHERE code=?", (code,)).fetchone()
|
||||
if _f:
|
||||
if _f[0]: pe_val = f"PE={_f[0]:.1f}"
|
||||
if _f[1]: pb_val = f"PB={_f[1]:.2f}"
|
||||
if _f[2]: pe_val += f" EPS={_f[2]:.2f}" if pe_val else f"EPS={_f[2]:.2f}"
|
||||
# 基本面:直接从腾讯API拉(静态数据,随时可用)
|
||||
try:
|
||||
_pfx = "sh" if str(code).startswith(("6", "9")) else "sz"
|
||||
_r3 = __import__('subprocess').run(["curl", "-s", f"http://qt.gtimg.cn/q={_pfx}{code}"],
|
||||
capture_output=True, timeout=10)
|
||||
_txt3 = _r3.stdout.decode("gbk", errors="ignore")
|
||||
_p3 = _txt3.split("~")
|
||||
if len(_p3) > 45:
|
||||
_pe = _p3[39] if _p3[39] else ""
|
||||
_pb = _p3[40] if len(_p3) > 40 and _p3[40] else ""
|
||||
_mcap = _p3[44] if len(_p3) > 44 and _p3[44] else ""
|
||||
_name3 = _p3[1] if _p3[1] else ""
|
||||
if _pe: pe_val = f"PE={_pe}"
|
||||
if _pb: pb_val = f"PB={_pb}"
|
||||
if _mcap:
|
||||
mcap_val = f"市值{float(_mcap)/10000:.1f}亿" if float(_mcap) > 10000 else f"市值{_mcap}万"
|
||||
pe_val += f" {mcap_val}" if pe_val else mcap_val
|
||||
# 如果还没有大盘数据,顺便从同一响应拿指数
|
||||
if not macro_desc:
|
||||
macro_desc = f"{_name3}实时行情"
|
||||
except:
|
||||
pass
|
||||
_db.close()
|
||||
except Exception as _e:
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user