引言:告别手动追踪的信息焦虑作为一名金融科技领域的数据分析人,我每天需要监控微博、知乎、抖音等平台的热点动态。曾经我的工作台总是堆满十几个浏览器标签,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 # 可视化
二、多平台热点数据抓取 1. 微博热搜采集(示例代码) 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
三、AI智能分析模块 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''' <html> <body> <h2>每日热点报告</h2> {content.replace('\n', '<br>')} <img src='cid:heatmap' width='800'> </body> </html> ''' msg.attach(MIMEText(html, 'html')) # 插入热力图 with open('temp/heatmap.png', 'rb') as f: img = MIMEImage(f.read()) img.add_header('Content-ID', '<heatmap>') 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持久化存储历史数据 - 报警机制:通过Telegram Bot发送异常通知 六、方案优势与效果1. 跨平台监控:同时覆盖微博、知乎、抖音等主流平台 2. 动态感知:每小时更新数据,识别突发热点 3. 深度洞察:AI分析事件传播规律与商业价值 4. 移动办公:邮件报告支持手机端查看
|