医药行业日报技能从新浪财经免费公开接口抓取 A 股医药板块实时行情,分析后通过飞书发送日报。
一、用途 用于快速产出 A 股医药行业日报:抓取 20 只核心医药股实时数据,计算赛道排名、涨跌榜 TOP 3、资金流向估算,生成飞书富文本日报并发送到指定对话,同时在原始数据目录保存当日快照 JSON。
二、主要能力
- 抓取 20 只核心医药股实时数据(新浪 hq.sinajs.cn,GBK 编码,免费无需认证)。
- 计算赛道排名、涨跌榜 TOP 3、资金流向估算。
- 生成飞书富文本日报(含涨跌颜色、赛道奖牌)。
- 通过 lark-cli 发送到指定飞书对话。
- 在原始数据目录保存当日快照 JSON。
能力边界:能做 A 股医药行业 20 只核心标的的实时快照、7 大细分赛道对比(创新药 / CXO / 医疗器械 / 中药 / 综合医药 / 医疗服务 / 生物制品)、飞书 markdown 美化的日报输出。不能做:不提供投资建议(日报自带免责声明);不抓取付费/Paywall 内容(只用新浪免费接口);不保证数据无误(来源标注为新浪,交易决策请多方交叉验证)。
三、前置条件
- Python 3.8+(只用 stdlib 的 urllib,无需 pip 装任何包)。
- lark-cli 已安装且已登录飞书账号。
- 能访问 hq.sinajs.cn。 如果用户没装 lark-cli: npm install -g @larksuite/cli lark-cli auth login --recommend 注意:飞书是国内服务,lark-cli 命令行前必须加 LARK_CLI_NO_PROXY=1。
四、使用方式
Step 1 确认参数:与用户确认飞书 profile(可用 lark-cli profile list 查看)、飞书对话(可通过 LARK_CLI_NO_PROXY=1 lark-cli im +chat-search --query " " --page-size 20 查询 chat_id;发给自己用 Feishu Assistant 对话,发群则搜群名)、股票池(默认 20 只医药核心标的,可定制如"只看创新药"或"加上某某股票")。
Step 2 运行数据管线:直接执行 scripts/daily_pipeline.py,示例:
python3 scripts/daily_pipeline.py
--feishu-profile <你的飞书profile名>
--feishu-chat-id <你的飞书chat_id>
脚本一气呵成:抓数据 → 分析 → 生成日报 → 发飞书 → 存快照。
Step 3 向用户汇报结果:告知几只上涨/几只下跌/平均涨跌幅、最强与最弱赛道、领涨和领跌 TOP 3、飞书是否发送成功。
数据管线详解:新浪财经实时行情接口为 http://hq.sinajs.cn/list=sh600276,sz300122,... ,返回 GBK 编码文本,每行格式 var hq_str_sh600276="股票名称,今开,昨收,现价,最高,最低,...,成交金额,...,日期,时间",共 32 个逗号分隔字段。关键字段(从 0 开始数):位置 0 股票名称(如恒瑞医药)、位置 2 昨收(如 45.60)、位置 3 现价(如 46.10)、位置 4 今日最高(如 46.50)、位置 5 今日最低(如 45.30)、位置 9 成交金额(元,如 850000000)。代码前缀规则:6 开头 = sh,其他 = sz。赛道分类:20 只股票分为 7 个赛道,分析时按赛道聚合涨跌幅和成交额。资金流向估算:新浪免费接口不提供买卖方向数据,脚本用"涨的股票的成交额 - 跌的股票的成交额"粗略估算净流向,报告中标注为"估算"。
五、适用场景 需要每个交易日获取 A 股医药板块整体与细分赛道概览、涨跌榜单和资金流向参考,并通过飞书群或个人会话接收日报的场景。适合配合定时任务实现自动发送,例如工作日 9:03 每个交易日开盘前收到,或每天 9:03 发送。
六、限制与常见问题
- 股票名称出现空格:新浪返回的个别名称带空格(如"新 和 成"),脚本内置归一化。
- 飞书消息太长:飞书 markdown 消息有约 4096 字节限制,超长自动截断并标注。
- 非交易时段:交易时间 9:30-15:00 外,新浪返回上一个收盘价,涨跌幅接近 0;报告仍会显示,但数据时间可以判断是否实时。
- 网络问题:新浪不可达时脚本报错退出,不使用缓存(金融数据宁可没有也不能是旧的)。
分类、价格与更多官方说明资料中暂未提供。