Skip to content

dream-star-end/social-sentiment-scraper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Social Sentiment Scraper

基于 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)
  • 分析:千问大模型对新闻与评论做情绪分析、标的归类、摘要
  • 输出:投资建议、多维度情绪指标
  • 展示:仪表盘 + 多图表(情绪趋势、标的分布、新闻列表等)

快速开始

1. 环境

python3 -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -r requirements.txt

2. 配置

复制 .env.example.env,填写千问 API Key(阿里云 DashScope):

cp .env.example .env
# 编辑 .env:DASHSCOPE_API_KEY=sk-xxx

3. 爬虫

cd crawler
scrapy crawl weibo_hot
scrapy crawl toutiao_hot
scrapy crawl reddit_rss
scrapy crawl investing_rss
# 或一次跑全部:scrapy crawl all_sources

结果写入 data/raw/,后端会读取并分析。

4. 后端

cd backend
uvicorn main:app --reload --host 0.0.0.0 --port 8000

API 文档:http://localhost:8000/docs

5. 前端

# 用任意静态服务器打开 frontend/index.html,或让后端托管
cd frontend && python3 -m http.server 8080

访问 http://localhost:8080 ,图表会请求后端 API 获取数据。

千问(DashScope)

  • 使用阿里云 DashScope 的千问 API
  • 在控制台创建 API Key,写入 .envDASHSCOPE_API_KEY
  • 用于:新闻/评论摘要、情绪判断、投资建议文案生成

微博热搜与自动化

  • 不配 Cookie:爬虫会照常请求微博热搜,若返回 403 则静默跳过,不影响其他源,全流程可无人值守。
  • 要稳定拿到微博数据:只需一次性在浏览器登录微博,打开开发者工具 → 网络 → 选任意请求 → 复制请求头里的 Cookie,然后任选其一:
    • 环境变量:export WEIBO_COOKIE="复制的整段 Cookie"
    • 或写入文件:echo "复制的整段 Cookie" > ~/.weibo_cookie,再设 export WEIBO_COOKIE_FILE=~/.weibo_cookie
  • Cookie 有效期内(通常数天到数周)无需再操作,cron/定时任务可全自动跑;过期后重新复制一次即可。

许可证

MIT,仅供学习研究;爬取请遵守各站点 ToS、控制频率。

About

Scrapy 爬虫 + 千问大模型:国内外社交媒体新闻/评论采集与智能分析、投资建议与情绪指标

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors