找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 股票 资源 源码
查看: 599|回复: 1

财联社综合监控系统2.0(含源码),实时获取重要资讯及投资日历

 火... [复制链接]

1454

主题

96

回帖

4万

积分

管理员

积分
48834
发表于 2025-12-28 08:00:05 | 显示全部楼层 |阅读模式
1ebc9427d1ac3d8ebc2d828d6e84c7a4.png

点击关注↓↓↓置顶+星标每天订阅,学习更多指标内容☼↓↓↓


想提前看剧本?我的野路子


最近这行情,题材跟电风扇一样转,一天一个样,前排吃肉的没你份,后排挨打的准有你。很多人估计都跟我一样,肉没吃到,巴掌挨结实了,心里窝火。


我就在琢磨,老是跟在人家屁股后面闻屁,能不能换个玩法?比如提前拿到剧本,找个靠谱的角落提前埋伏进去,等风来了再起飞。


这不,我盯上了财联社那个投资日历。里面把未来几个月可能炸裂的大事都给你排得明明白白,这玩意儿才是真正的宝藏地图啊。


前几天我不是分享了财联社的电报新闻系统吗,今天我把财联社的投资日历也撸下来可以不可以。


数据搞到手只是第一步,真正炸裂的是后面的操作。我直接把这堆未来事件灌给了deepseek,然后开始跟它下指令。 947f6265c5698d3b07543cfe3d27c23a.png


具体怎么玩?我写的prompt大概是这样的:


1.  分析这个事件的题材,判断它在市场上的“成色”如何,是属于能点燃情绪的爆款,还是纯凑数的垃圾。
2.  如果觉得有戏,就深挖一下背后的产业链,把相关的概念股给我扒出来,按核心受益程度排个序。
3.  再简单讲讲炒作的逻辑,这个题材的坑在哪,持续性有多长,别让人家一上来就接盘。


你别说,AI这玩意儿当个小弟还真挺好用。几秒钟就给你把活干完了,逻辑清晰,条理分明。相当于你雇了个不要工资的分析师,7x24小时待命。


这套玩法,说白了就是降维打击。普通散户还在为今天涨啥明天跌啥发愁,你已经提前一个月开始布局了。这市场,本质就是个信息不对称的赌场,谁能提前看一眼底牌,谁的赢面就大得多。
我把这个思路分享出来,你们觉得有搞头,自己也可以琢磨琢磨。技术细节就不展开了,免得有人说我炫耀。


另外我把这个抓取源码跟上次分享的财联社电报新闻结合一起,可以对比起来了。


d83305f12e5bdc202cc06231c39387a6.png



不懂PY的也没关系,仓鼠哥打包为EXE,你直接下载使用就可以了。


  1. import streamlit as st
  2. import urllib.parse
  3. import hashlib
  4. import requests
  5. import pandas as pd
  6. from datetime import datetime, timedelta



  7. # 生成签名的函数
  8. def generate_sign(params):
  9.     """生成签名:排序参数 -> URL编码 -> SHA1加密 -> MD5加密"""
  10.     sorted_data = sorted(params.items(), key=lambda item: item[0])
  11.     query_string = urllib.parse.urlencode(sorted_data)
  12.     sha1_hash = hashlib.sha1(query_string.encode('utf-8')).hexdigest()
  13.     sign = hashlib.md5(sha1_hash.encode('utf-8')).hexdigest()
  14.     return sign


  15. # 获取财经日历数据
  16. def get_calendar_data():
  17.     """获取财联社财经日历数据"""
  18.     params = {
  19.         'app': 'CailianpressWeb',
  20.         'flag': '0',
  21.         'os': 'web',
  22.         'sv': '8.4.6',
  23.         'type': '0'
  24.     }

  25.     params['sign'] = generate_sign(params)

  26.     url = 'https://www.cls.cn/api/calendar/web/list'
  27.     headers = {
  28.         "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36",
  29.         "Referer": "https://www.cls.cn/",
  30.         "Accept-Language": "zh-CN,zh;q=0.9",
  31.     }

  32.     try:
  33.         response = requests.get(url, params=params, headers=headers, timeout=10)
  34.         if response.status_code == 200:
  35.             return response.json()
  36.         else:
  37.             st.error(f"请求失败,状态码: {response.status_code}")
  38.             return None
  39.     except Exception as e:
  40.         st.error(f"请求出错: {str(e)}")
  41.         return None


  42. # 处理数据
  43. def process_data(data):
  44.     """处理API返回的数据"""
  45.     if not data or 'data' not in data:
  46.         return pd.DataFrame()

  47.     processed_items = []

  48.     for day_data in data['data']:
  49.         calendar_day = day_data.get('calendar_day', '')
  50.         week = day_data.get('week', '')

  51.         for item in day_data.get('items', []):
  52.             processed_item = {
  53.                 '日期': calendar_day,
  54.                 '星期': week,
  55.                 '标题': item.get('title', ''),
  56.                 '类型': item.get('type', ''),
  57.                 'ID': item.get('id', '')
  58.             }
  59.             processed_items.append(processed_item)

  60.     return pd.DataFrame(processed_items)


  61. # 主应用
  62. def main():
  63.     # 标题和描述
  64.     st.title("📅 财联社投资日历")
  65.     st.markdown("---")


  66.     raw_data = get_calendar_data()

  67.     if raw_data and raw_data.get('code') == 200:
  68.         df = process_data(raw_data)

  69.         if not df.empty:
  70.                       # 搜索框
  71.             search_term = st.text_input("🔍 搜索事件标题")
  72.             if search_term:
  73.                 df = df[df['标题'].str.contains(search_term, case=False, na=False)]

  74.             st.subheader("📋 事件列表")

  75.             # 显示数据表格
  76.             display_df = df[['日期', '星期', '标题']].copy()
  77.             st.dataframe(
  78.                 display_df,
  79.                 # use_container_width=True,
  80.                 hide_index=True,
  81.                 column_config={
  82.                     "日期": st.column_config.TextColumn("日期", width="small"),
  83.                     "星期": st.column_config.TextColumn("星期", width="small"),
  84.                     "标题": st.column_config.TextColumn("标题", width="large")
  85.                 }
  86.             )

  87.             # 下载按钮
  88.             csv = display_df.to_csv(index=False, encoding='utf-8-sig')
  89.             st.download_button(
  90.                 label="📥 下载数据为CSV",
  91.                 data=csv,
  92.                 file_name=f"财经日历_{datetime.now().strftime('%Y%m%d')}.csv",
  93.                 mime="text/csv"
  94.             )
  95.         else:
  96.             st.warning("没有找到相关数据")
  97.     else:
  98.         st.error("无法获取数据,请检查网络连接或稍后重试")

  99.     # 页脚
  100.     st.markdown("---")
  101.     st.markdown(
  102.         """
  103.         <div style='text-align: center; color: gray;'>
  104.             <p>数据来源:财联社 API | 更新时间:{} | 本应用仅用于学习交流</p>
  105.         </div>
  106.         """.format(datetime.now().strftime("%Y-%m-%d %H:%M:%S")),
  107.         unsafe_allow_html=True
  108.     )


  109. if __name__ == "__main__":
  110.     main()
复制代码


f6765734682c4d562b73d75b53aa9a1e.png

财联社综合监控系统2.0.zip

13.89 MB, 下载次数: 1092

0

主题

3

回帖

0

积分

注册会员

积分
0
发表于 7 天前 | 显示全部楼层
谢谢老师提供!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋| 股指标网 ( 渝ICP备2024026571号-1 )

GMT+8, 2026-1-10 02:44 Powered by Discuz! X3.5