基于 Scrapy 的国内外社交媒体新闻/评论采集 + 千问大模型 智能分析,输出投资建议与情绪指标,前端用图表展示。
social-sentiment-scraper/
├── crawler/ # Scrapy 爬虫(微博、头条、知乎、Reddit、Nitter、Investing 等)
├── backend/ # FastAPI 后端,千问集成、情绪分析、投资建议 API
├── frontend/ # 前端:数据与图表展示(ECharts)
├── data/ # 爬取与分析结果存储
├── requirements.txt
└── .env.example
- 采集:国内外主流社交/财经源(微博热搜、今日头条、知乎热榜、Reddit、X/Nitter、Investing.com RSS)
- 分析:千问大模型对新闻与评论做情绪分析、标的归类、摘要
- 输出:投资建议、多维度情绪指标
- 展示:仪表盘 + 多图表(情绪趋势、标的分布、新闻列表等)
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt复制 .env.example 为 .env,填写千问 API Key(阿里云 DashScope):
cp .env.example .env
# 编辑 .env:DASHSCOPE_API_KEY=sk-xxxcd crawler
scrapy crawl weibo_hot
scrapy crawl toutiao_hot
scrapy crawl reddit_rss
scrapy crawl investing_rss
# 或一次跑全部:scrapy crawl all_sources结果写入 data/raw/,后端会读取并分析。
cd backend
uvicorn main:app --reload --host 0.0.0.0 --port 8000API 文档:http://localhost:8000/docs
# 用任意静态服务器打开 frontend/index.html,或让后端托管
cd frontend && python3 -m http.server 8080访问 http://localhost:8080 ,图表会请求后端 API 获取数据。
- 使用阿里云 DashScope 的千问 API
- 在控制台创建 API Key,写入
.env的DASHSCOPE_API_KEY - 用于:新闻/评论摘要、情绪判断、投资建议文案生成
- 不配 Cookie:爬虫会照常请求微博热搜,若返回 403 则静默跳过,不影响其他源,全流程可无人值守。
- 要稳定拿到微博数据:只需一次性在浏览器登录微博,打开开发者工具 → 网络 → 选任意请求 → 复制请求头里的
Cookie,然后任选其一:- 环境变量:
export WEIBO_COOKIE="复制的整段 Cookie" - 或写入文件:
echo "复制的整段 Cookie" > ~/.weibo_cookie,再设export WEIBO_COOKIE_FILE=~/.weibo_cookie
- 环境变量:
- Cookie 有效期内(通常数天到数周)无需再操作,cron/定时任务可全自动跑;过期后重新复制一次即可。
MIT,仅供学习研究;爬取请遵守各站点 ToS、控制频率。