
Twitter API Key 的 OAuth 認(rèn)證與授權(quán)機制
由于 Google 官方 News API 已停用,目前主流選擇包括:
方案類型 | 工具推薦 | 特點說明 |
---|---|---|
第三方 API | SerpAPI、Zenserp | 提供結(jié)構(gòu)化 JSON 數(shù)據(jù),穩(wěn)定可靠 |
RSS 抓取 | Google News RSS | 免費但信息粒度有限 |
自建爬蟲 | Python+BeautifulSoup | 靈活但存在反爬挑戰(zhàn) |
在實際部署中,SerpAPI 是最推薦的解決方案,具備高效、結(jié)構(gòu)清晰、支持語言和區(qū)域過濾等優(yōu)勢。
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
: 新聞標(biāo)題link
: 原文鏈接snippet
: 簡要內(nèi)容source.name
: 來源媒體date
: 發(fā)布時間使用 jieba
對標(biāo)題與摘要進行分詞:
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
生成關(guān)鍵詞圖譜,快速洞察話題聚焦點。
將摘要轉(zhuǎn)向量化后聚類:
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)
結(jié)果可將新聞自動分組,例如:
將新聞日期歸類后統(tǒng)計關(guān)鍵詞出現(xiàn)頻率,生成趨勢曲線圖:
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 "負(fù)面" if score < 0.4 else "中性"
> ? 正面情緒:品牌宣傳、產(chǎn)業(yè)利好
> ? 負(fù)面情緒:爭議報道、事件沖突、政策打擊
可結(jié)合 pandas
分析負(fù)面情緒新聞數(shù)量趨勢與來源分布。
模塊 | 功能描述 |
---|---|
數(shù)據(jù)獲取層 | 調(diào)用 SerpAPI 獲取新聞數(shù)據(jù)(Python 腳本) |
數(shù)據(jù)處理層 | 分詞、聚類、情感分析 |
存儲層 | MongoDB、Elasticsearch、CSV 文件等 |
可視化層 | Streamlit、Grafana、Tableau 等前端展示 |
推送機制 | 郵件、Slack、Webhook 自動通知 |
[SerpAPI] ──? [爬蟲腳本] ──? [數(shù)據(jù)分析模塊] ──? [MongoDB]
│
└──? [Streamlit儀表盤]
└──? [郵件/Slack通知]
應(yīng)用方向 | 使用效果 |
---|---|
內(nèi)容編輯選題 | 自動生成當(dāng)日或本周推薦話題 |
輿情監(jiān)控與公關(guān) | 識別負(fù)面新聞集中趨勢并快速響應(yīng) |
投資研究與資訊分析 | 追蹤特定行業(yè)或企業(yè)相關(guān)新聞密度與情感波動 |
自動新聞推薦系統(tǒng) | 對用戶感興趣關(guān)鍵詞進行聚類與趨勢推送 |
參考 YouTube 上的 n8n + Google News Scraper 自動策劃內(nèi)容 教程,以下是典型流程:
問題場景 | 建議策略 |
---|---|
API 請求頻率過快 | 加入 time.sleep() 限流,或使用緩存機制 |
返回新聞數(shù)量不足 | 拆分關(guān)鍵詞或提高 num 參數(shù)(建議 ≤ 100) |
關(guān)鍵詞聚類不準(zhǔn)確 | 使用深度 Embedding(如 BERT + UMAP)代替 TF-IDF |
時間標(biāo)簽?zāi):ㄈ?quot;4小時前") | 使用服務(wù)端統(tǒng)一轉(zhuǎn)換為 UTC 格式 |
通過結(jié)合 Google News API、關(guān)鍵詞提取、情感分析與趨勢聚類等技術(shù),你可以構(gòu)建:
無論你是內(nèi)容編輯、數(shù)據(jù)分析師、產(chǎn)品經(jīng)理還是開發(fā)者,Google News API 都是構(gòu)建“信息優(yōu)勢”的關(guān)鍵一環(huán)。