A股是个政策占很大比重的市场,想要不被大镰刀收割,了解一些政策热点事必要的。
1. 安装Pytho环境
-
先去 Python 官网下载安装(建议 3.9+):
www.python.org/downloads/ -
安装好后,打开终端(Windows 用 CMD 或 PowerShell),输入:
js
python --version
如果输出类似 Python 3.11.5
,说明安装成功。
2. 创建项目文件夹
bash
mkdir policy_stock_tracker
cd policy_stock_tracker
3. 安装依赖库
bash
pip install pandas requests matplotlib beautifulsoup4 lxml openpyxl
-
pandas
→ 数据处理 -
requests
→ HTTP 请求抓取网页 -
matplotlib
→ 数据可视化 -
beautifulsoup4
/lxml
→ 解析 HTML -
openpyxl
→ 让 pandas 能导出 Excel
如果报错如下:
bash
ERROR: Could not find a version that satisfies the requirement pandas (from versions: none)
意思是 pip 找不到可安装的 pandas 版本,可能原因是pip太旧了,先升级
bash
python -m pip install --upgrade pip
然后重新安装
4. 建立Python文件
在项目目录下新建 tracker.py
,写入以下代码框架:
python
import requests
import pandas as pd
import matplotlib.pyplot as plt
from bs4 import BeautifulSoup
from datetime import datetime
# 1. 政策关键词库
keywords = [
"碳中和", "新能源", "光伏", "储能",
"新基建", "算力", "人工智能", "5G",
"国产替代", "半导体", "芯片",
"乡村振兴", "农业现代化", "种业",
"医保", "创新药", "医疗器械",
"房地产", "限购", "装修",
"军工", "国防", "航天","人形机器人","稳定币","反内卷","雅下水电"
]
# 2. 新闻数据抓取(以东方财富为例)
def fetch_news():
url = "https://finance.eastmoney.com/a/cgnjj.html"
r = requests.get(url)
r.encoding = "utf-8"
soup = BeautifulSoup(r.text, "lxml")
news_list = []
for a in soup.select("a"):
title = a.get_text().strip()
if title and len(title) > 4:
news_list.append(title)
return news_list
# 3. 统计关键词热度
def analyze_keywords(news_list):
results = []
for kw in keywords:
count = sum(1 for n in news_list if kw in n)
if count > 0:
results.append({"关键词": kw, "热度": count})
df = pd.DataFrame(results).sort_values(by="热度", ascending=False)
return df
# 4. 可视化热度
def plot_heatmap(df):
plt.figure(figsize=(10,6))
plt.bar(df["关键词"], df["热度"], color="orange")
plt.xticks(rotation=45)
plt.title("政策热度排行")
plt.tight_layout()
plt.savefig("policy_heat.png")
plt.show()
# 5. 主运行逻辑
if __name__ == "__main__":
news_list = fetch_news()
print(f"抓取到 {len(news_list)} 条新闻")
print(news_list[:10]) # 打印前 10 条看看内容
df = analyze_keywords(news_list)
print(df) # 打印分析结果
if not df.empty:
today = datetime.now().strftime("%Y-%m-%d")
df.to_excel(f"policy_heat_{today}.xlsx", index=False)
plot_heatmap(df)
print(f"已保存 {today} 政策热度数据,共 {len(df)} 条关键词")
else:
print("没有匹配到任何关键词,未生成 Excel。")
5. 运行脚本
bash
python tracker.py
6.windows系统每天自动执行
- 打开"任务计划程序"
-
按 Win + S 搜索 "任务计划程序" 或 Task Scheduler,打开它。
-
右侧点击 创建基本任务...
- . 创建基本任务
- 名称 :填入
Python Tracker
- 描述:随意,比如 "每天早上7点运行 tracker.py"
- 点击 下一步
- 触发器
- 选择 每天
- 设置 开始日期 (今天)和 时间(07:00)
- 点击 下一步
- 操作
-
选择 启动程序
-
点击 浏览 ,找到 python.exe,比如:
makefilemakefile 复制编辑 C:\Users\你\AppData\Local\Programs\Python\Python311\python.exe
-
添加参数(重要):
makefilemakefile 复制编辑 D:\Projects\tracker.py
-
起始于(可选) :
makefilemakefile 复制编辑 D:\Projects
(这是脚本所在文件夹路径,不要带引号)
- 测试任务
-
在任务计划程序里找到刚创建的任务,右键 → 运行
-
确认能执行 python 脚本,并生成你需要的结果(比如 Excel 文件)