摘要:作为一名金融科技领域的数据分析人,我每天需要监控微博、知乎、抖音等平台的热点动态。曾经我的工作台总是堆满十几个浏览器标签,Excel表格里密密麻麻记录着热点数据,但真正写作时却陷入信息过载的困境。直到开始考虑开发了一套Python自动化系统,实现多平台热点抓取
作为一名金融科技领域的数据分析人,我每天需要监控微博、知乎、抖音等平台的热点动态。曾经我的工作台总是堆满十几个浏览器标签,Excel表格里密密麻麻记录着热点数据,但真正写作时却陷入信息过载的困境。直到开始考虑开发了一套Python自动化系统,实现多平台热点抓取→智能分析→可视化报告→定时推送的全流程管理,工作效率提升300%。下面分享这个系统的实现方案。
本系统由四大模块组成(如图1所示),主要依赖以下Python库:
python
# 核心依赖库
import requests # 数据抓取
from bs4 import BeautifulSoup # HTML解析
import openai # 调用GPT-4分析
import pandas as pd # 数据处理
import smtplib # 邮件发送
from email.mime.multipart import MIMEMultipart
import schedule # 定时任务
import matplotlib.pyplot as plt # 可视化
python
def fetch_weibo_hot:
url = "https://weibo.com/ajax/side/hotSearch"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
"Cookie": "您的Cookie" # 需定期更新
}
try:
response = requests.get(url, headers=headers, timeout=10)
data = response.json
hot_list =
# 解析实时热搜和文娱榜
for item in data['data']['realtime'] + data['data']['entrank']:
hot_list.append({
"platform": "微博",
"rank": item['rank'],
"keyword": item['word'],
"url": f"https://s.weibo.com/weibo?q={item['word']}",
"heat": int(item['raw_hot'])
})
return pd.DataFrame(hot_list).drop_duplicates('keyword')
except Exception as e:
print(f"微博热搜获取失败: {str(e)}")
return pd.DataFrame
2. 数据存储与整合
python
def merge_hot_data:
# 多平台数据合并
sources = {
"微博": fetch_weibo_hot,
"知乎": fetch_zhihu_hot, # 知乎抓取函数略
"抖音": fetch_douyin_hot # 抖音抓取函数略
}
# 纵向拼接并去重
full_df = pd.concat([df.assign(platform=plat) for plat, df in sources.items])
full_df = full_df.sort_values('heat', ascending=False).drop_duplicates('keyword')
# 保存原始数据
full_df.to_csv(f"hot_data/{datetime.today.strftime('%Y%m%d')}.csv", index=False)
return full_df
1. GPT-4分析指令设计
python
def generate_analysis_prompt(hot_topics):
topics_str = "\n".join([f"{idx+1}. {row['keyword']}(热度:{row['heat']})"
for idx, row in hot_topics.iterrows])
return f"""你是一位资深数据分析师,请根据以下跨平台热点生成分析报告:
【热点列表】
{topics_str}
【报告要求】
1. 识别出3个最具商业价值的事件
2. 分析每个事件的传播特征(平台差异、用户画像)
3. 预测未来3天的舆论发展趋势
4. 给出内容创作建议(切入角度、风险规避)
【输出格式】
## 每日热点分析报告({datetime.today.strftime('%Y-%m-%d')})
### 重点事件分析
1. [事件标题]
- 传播特征:...
- 价值评估:...
2. ...
### 创作建议
- 建议1:...
- 建议2:...
"""
2. 调用OpenAI API
python
def get_ai_analysis(text):
openai.api_key = os.getenv("OPENAI_API_KEY")
try:
response = openai.ChatCompletion.create(
model="gpt-4-1106-preview",
messages=[{"role": "user", "content": text}],
temperature=0.7,
max_tokens=2000
)
return response.choices[0].message.content
except Exception as e:
print(f"AI分析失败: {str(e)}")
return ""
1. 生成热力图
python
def generate_heatmap(df):
plt.figure(figsize=(12, 6))
pivot_df = df.pivot_table(index='platform', columns='hour', values='heat', aggfunc='sum')
sns.heatmap(pivot_df, cmap="YlGnBu", annot=True, fmt=".0f")
plt.title("各平台热度时段分布")
plt.savefig("temp/heatmap.png") # 保存临时图片
2. 邮件发送功能
python
def send_report(content):
msg = MIMEMultipart
msg['From'] = os.getenv("SENDER_MAIL")
msg['To'] = os.getenv("RECEIVER_MAIL")
msg['Subject'] = f"{datetime.today.strftime('%m%d')}热点分析报告"
# 添加HTML内容
html = f"""
每日热点报告
{content.replace('\n', '
')}
"""
msg.attach(MIMEText(html, 'html'))
# 插入热力图
with open("temp/heatmap.png", 'rb') as f:
img = MIMEImage(f.read)
img.add_header('Content-ID', '')
msg.attach(img)
# 发送邮件(以QQ邮箱为例)
with smtplib.SMTP_SSL("smtp.qq.com", 465) as server:
server.login(os.getenv("SENDER_MAIL"), os.getenv("MAIL_PASSWORD"))
server.send_message(msg)
1. 主程序逻辑
```python
def main:
# 数据采集
full_df = merge_hot_data
# 生成可视化
generate_heatmap(full_df)
# AI分析
report = get_ai_analysis(
generate_analysis_prompt(full_df.head(15))
# 发送邮件
send_report(report)
# 清理临时文件
os.remove("temp/heatmap.png")
if __name__ == "__main__":
schedule.every.day.at("09:30").do(main) # 每日早间推送
schedule.every.day.at("16:30").do(main) # 下午补充推送
while True:
schedule.run_pending
time.sleep(60)
2. 生产环境优化建议
- 反爬策略:使用代理IP池、随机请求头
- 错误重试:添加retry装饰器实现自动重试
- 本地存储:使用SQLite持久化存储历史数据
1. 跨平台监控:同时覆盖微博、知乎、抖音等主流平台
2. 动态感知:每小时更新数据,识别突发热点
3. 深度洞察:AI分析事件传播规律与商业价值
4. 移动办公:邮件报告支持手机端查看
实际使用数据显示,该系统帮助创作者:
- 热点发现效率提升4倍
- 内容阅读量平均增长120%
- 每日节省2.5小时人工分析时间
通过这个Python自动化系统,我成功将重复性工作交给程序处理,自己则专注于创意内容生产。这套方案的价值不仅在于节省时间,更重要的是通过数据驱动的分析,帮助创作者把握热点本质,产出更具深度的内容。
码字不易,有感觉需要的可以收藏保存备用。有时间可以全阅点赞评论。
来源:迷雾王子