
Twitter API Key 的 OAuth 认证与授权机制
在数字媒体高速发展的时代,实时获取与分析新闻趋势成为企业与开发者的重要能力。无论是内容运营、品牌公关、竞品监控还是市场洞察,Google News 提供了丰富、权威、实时的新闻源。
通过构建新闻趋势分析系统,你可以:
由于 Google 官方 News API 已停用,目前主流选择包括:
方案类型 | 工具推荐 | 特点说明 |
---|---|---|
第三方 API | SerpAPI、Zenserp | 提供结构化 JSON 数据,稳定可靠 |
RSS 抓取 | Google News RSS | 免费但信息粒度有限 |
自建爬虫 | Python+BeautifulSoup | 灵活但存在反爬挑战 |
在实际部署中,SerpAPI 是最推荐的解决方案,具备高效、结构清晰、支持语言和区域过滤等优势。
from serpapi import GoogleSearch
params = {
"engine": "google_news",
"q": "人工智能",
"hl": "zh-cn",
"gl": "cn",
"num": 20,
"api_key": "YOUR_SERPAPI_KEY"
}
search = GoogleSearch(params)
results = search.get_dict()
news = results.get("news_results", [])
返回字段说明:
title
: 新闻标题link
: 原文链接snippet
: 简要内容source.name
: 来源媒体date
: 发布时间使用 jieba
对标题与摘要进行分词:
import jieba
from collections import Counter
text = " ".join(item["title"] for item in news)
words = [w for w in jieba.cut(text) if len(w) > 1]
top_words = Counter(words).most_common(20)
可视化词频:
使用 wordcloud
生成关键词图谱,快速洞察话题聚焦点。
将摘要转向量化后聚类:
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.cluster import KMeans
texts = [item["snippet"] for item in news]
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(texts)
model = KMeans(n_clusters=5, random_state=42)
labels = model.fit_predict(X)
结果可将新闻自动分组,例如:
将新闻日期归类后统计关键词出现频率,生成趋势曲线图:
import matplotlib.pyplot as plt
from collections import defaultdict
trend = defaultdict(int)
for item in news:
date = item.get("date", "未知")
if "小时" not in date:
trend[date] += 1
plt.plot(list(trend.keys()), list(trend.values()))
plt.xticks(rotation=45)
plt.title("新闻热度趋势")
plt.show()
使用 SnowNLP
或 TextBlob
分析摘要的情绪倾向:
from snownlp import SnowNLP
for item in news:
score = SnowNLP(item["snippet"]).sentiments
item["sentiment"] = "正面" if score > 0.6 else "负面" if score < 0.4 else "中性"
> ✅ 正面情绪:品牌宣传、产业利好
> ❌ 负面情绪:争议报道、事件冲突、政策打击
可结合 pandas
分析负面情绪新闻数量趋势与来源分布。
模块 | 功能描述 |
---|---|
数据获取层 | 调用 SerpAPI 获取新闻数据(Python 脚本) |
数据处理层 | 分词、聚类、情感分析 |
存储层 | MongoDB、Elasticsearch、CSV 文件等 |
可视化层 | Streamlit、Grafana、Tableau 等前端展示 |
推送机制 | 邮件、Slack、Webhook 自动通知 |
[SerpAPI] ──▶ [爬虫脚本] ──▶ [数据分析模块] ──▶ [MongoDB]
│
└──▶ [Streamlit仪表盘]
└──▶ [邮件/Slack通知]
应用方向 | 使用效果 |
---|---|
内容编辑选题 | 自动生成当日或本周推荐话题 |
舆情监控与公关 | 识别负面新闻集中趋势并快速响应 |
投资研究与资讯分析 | 追踪特定行业或企业相关新闻密度与情感波动 |
自动新闻推荐系统 | 对用户感兴趣关键词进行聚类与趋势推送 |
参考 YouTube 上的 n8n + Google News Scraper 自动策划内容 教程,以下是典型流程:
问题场景 | 建议策略 |
---|---|
API 请求频率过快 | 加入 time.sleep() 限流,或使用缓存机制 |
返回新闻数量不足 | 拆分关键词或提高 num 参数(建议 ≤ 100) |
关键词聚类不准确 | 使用深度 Embedding(如 BERT + UMAP)代替 TF-IDF |
时间标签模糊(如"4小时前") | 使用服务端统一转换为 UTC 格式 |
通过结合 Google News API、关键词提取、情感分析与趋势聚类等技术,你可以构建:
无论你是内容编辑、数据分析师、产品经理还是开发者,Google News API 都是构建“信息优势”的关键一环。