零成本搭建全球科技热点情报站:12 个平台,6 小时,0 元

零成本搭建全球科技热点情报站:12 个平台,6 小时,0 元

用 trend-pulse + Scrapling + GitHub Pages,搭一个覆盖 Hacker News、GitHub Trending、Stack Overflow、微信热文等 12 个平台的实时热点聚合站。


你每天打开多少个网站看热点

作为一个每天逛技术社区的开发者,我的浏览器标签栏常年挂着:

  • Hacker News ------ 硅谷今天在聊什么
  • GitHub Trending ------ 什么项目正在涨星
  • Stack Overflow ------ 有什么能抄的代码
  • Reddit ------ 程序员在吐槽什么
  • 微信公众号 ------ 国内技术圈在讨论什么

五个网站,反复横跳。等你看完一圈,半小时没了。更致命的是------很多好项目在海外炸了两三天,中文社区才反应过来

有没有一个地方,能把全球科技热点一页看完?

我找了一圈。国内的热榜聚合站(Tophub、DailyHot)只覆盖中文平台。国外的各玩各的。没有一个人把全球 + 中国平台放在同一个页面里。

所以我花了一个周末,用三个开源工具,自己搞了一个。

在线体验:mixuecoding.github.io/mihoc-hot/

源码:github.com/mixuecoding...


架构总览

整个系统的核心思路:三个轮子,拼在一起。

scss 复制代码
GitHub Actions (每小时)
    │
    ├─ trend-pulse → 12 个全球源
    └─ Scrapling   → 微信 24h 热文
         │
         ▼
  data/trending.json (179 条,带中文翻译)
         │
    ┌────┴────┐
    ▼         ▼
 展示网站   公众号素材
(GitHub    (Python 自动
 Pages)    生成 HTML)

部署路径也简单到离谱:Python 采集 → JSON 存储 → GitHub Pages 展示 → Actions 定时更新。全程零服务器、零域名、零成本。


第一步:搭数据采集层(2 小时)

全球源:trend-pulse

trend-pulse 是一个开源的趋势情报聚合库,覆盖 37 个全球数据源。GitHub 66K Star,pip 安装即用。

bash 复制代码
pip install trend-pulse

核心代码只有几行:

python 复制代码
import asyncio
from trend_pulse.aggregator import TrendAggregator

async def main():
    agg = TrendAggregator()
    sources = ['hackernews', 'github', 'stackoverflow', 'google_trends',
               'wikipedia', 'bluesky', 'devto', 'lobsters', 'dockerhub',
               'npm', 'pypi', 'coingecko']
    results = await agg.trending(sources=sources, count=15)
    
    # results['sources'] 包含每个平台的数据
    # results['merged'] 是跨平台混合评分后的结果
    for name, items in results['sources'].items():
        for item in items:
            print(f"[{name}] {item['keyword']} (热度: {item['score']})")

asyncio.run(main())

每个热点包含:keyword(标题)、url(链接)、score(混合评分)、traffic(如 "717 points")、metadata(平台特有数据,如 HN 的评论数、GitHub 的 Star 数)。

坑点:Reddit 和 ProductHunt 在国内直连会 403,需要配代理。我暂时跳过了这两个源。

微信源:Scrapling

微信没有公开 API,但 Tophub.today 聚合了微信 24h 热文榜。用 Scrapling 抓它:

python 复制代码
from scrapling.fetchers import Fetcher

page = Fetcher.get(
    'https://tophub.today/n/wWmoO5Rd4E',
    stealthy_headers=True,
    timeout=20
)

links = page.css('a[href]')
articles = []
for link in links:
    text = link.css('::text').get()
    href = link.attrib.get('href', '')
    if text and len(text.strip()) > 10:
        articles.append({'keyword': text.strip(), 'url': href})

Scrapling 的 stealthy_headers=True 会模拟 Chrome 的 TLS 指纹,对反爬站点效果很好。

自动翻译英文标题

采回来的数据大部分是英文,公众号读者需要中文。接入 Google Translate 免费 API:

python 复制代码
from deep_translator import GoogleTranslator

def translate(text):
    # 跳过 GitHub 仓库名 (owner/repo) 和技术缩写
    if re.match(r'^[\w.-]+/[\w.-]+$', text):  # owner/repo
        return text
    if re.match(r'^[A-Z][A-Z0-9_-]{2,}$', text):  # 纯缩写
        return text
    if is_chinese(text):  # 已经是中文
        return text
    
    t = GoogleTranslator(source='auto', target='zh-CN')
    return t.translate(text[:200])
    # 翻译结果写入缓存文件,避免重复翻译

然后把三个来源合并成一个 data/trending.json,统一数据结构:

json 复制代码
{
  "updated": "2026-06-28T20:18:07+08:00",
  "source_count": {"global": 12, "wechat": 1},
  "total_items": 179,
  "global": [
    {
      "keyword": "匿名 GitHub 帐户大量删除未公开的 0day",
      "keyword_en": "Anonymous GitHub account mass-dropping undisclosed 0-days",
      "source": "hackernews",
      "url": "https://...",
      "score": 100,
      "traffic": "824 points"
    }
  ],
  "wechat": [...]
}

第二步:搭展示网站(2 小时)

前端不需要任何框架,一个纯静态 HTML 搞定。暗色主题,按平台分组,Ajax 读取 JSON 渲染。

html 复制代码
<script>
async function loadData() {
  const resp = await fetch('data/trending.json');
  const json = await resp.json();
  // 按平台分组渲染...
}
</script>

部署到 GitHub Pages:Settings → Pages → Source 选 master 分支。

结果:https://mixuecoding.github.io/mihoc-hot/,永久免费。

建了一个 GitHub 组织 mixuecoding 放仓库,网址显得专业一点。零成本。


第三步:定时自动化(1 小时)

GitHub Actions 写一个 workflow,每小时自动跑一次:

yaml 复制代码
name: Hourly Collect Trending Data

on:
  schedule:
    - cron: '30 * * * *'  # 每小时第30分钟
  workflow_dispatch:       # 支持手动触发

jobs:
  collect:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
      - run: pip install trend-pulse "scrapling[fetchers]"
      - run: python collect_all.py
      - uses: stefanzweifel/git-auto-commit-action@v5
        with:
          commit_message: "auto: update trending data"

踩过的坑:

  • [skip ci] 导致 Pages 不构建 :一开始 commit message 里写了 [skip ci],结果 GitHub Pages 跳过了部署,数据更新了但网站不变。去掉就好了。
  • pip install scrapling vs scrapling[fetchers] :后者才会安装 TLS 指纹模拟所需的 curl_cffi,缺了这个微信源会报 ModuleNotFoundError

最终效果

平台 内容 更新频率
💻 Hacker News 硅谷技术圈热议,带分值和评论数 每小时
⭐ GitHub Trending 当日涨星最快的开源项目 每小时
📚 Stack Overflow 最热技术问答 每小时
🔍 Google Trends 全球实时搜索趋势 每小时
🦋 Bluesky 海外社交媒体热点 每小时
📝 Dev.to / Lobste.rs 开发者社区热帖 每小时
🐳 Docker Hub / npm / PyPI 热门容器镜像和包 每小时
💬 微信 24h 热文 公众号爆款文章排行 每小时

复刻指南

如果你也想搭一个自己的热点情报站:

项目 说明
💰 成本 0 元
🛠 技能要求 Python 基础 + GitHub 使用
⏱ 耗时 熟练 2 小时,新手 6 小时
📦 依赖 pip install trend-pulse "scrapling[fetchers]" deep-translator
🔧 可定制 修改 GLOBAL_SOURCES 列表,加一行代码就能加新源
🌐 部署 推到 GitHub → Settings → Pages → 开启

复用流程:

bash 复制代码
git clone https://github.com/mixuecoding/mihoc-hot.git
cd mihoc-hot
pip install trend-pulse "scrapling[fetchers]" deep-translator
python collect_all.py
python -m http.server 8080
# 打开 http://localhost:8080

核心代码总共不到 500 行 Python + 一个 200 行的 HTML 页面。完整源码在 GitHub,README 里面有分步教程。


为什么值

1. 信息差就是钱。 GitHub 上一个项目在海外炸了,三天后才出现在中文技术社区------这时候别人已经用上甚至二开了。这个站让你看到 0 日差。

2. 全球视野 = 选题永动机。 Hacker News 热搜 + GitHub 新项目 + 微信热文三者对比,天然就能写出「国外在火什么、国内在讨论什么」的差异化技术文章。

3. 完全零成本。 GitHub Pages 免费,Actions 每月 2000 分钟额度(我们只用了约 60 分钟),trend-pulse 和 Scrapling 都是 MIT 开源协议。


开源地址

如果你也想摆脱信息茧房,或者正在找公众号的技术选题------这个工具应该能帮到你。

关-注-公-众-号「蜜学编程」,获取更多 AI 编程实战内容。完整搭建教程见 GitHub 仓库。


本文同步发布于掘金、CSDN、简书。

相关推荐
用户059540174461 小时前
用了3年Mock,才发现Redis记忆存储的测试一直漏掉了60%的边界场景
前端·css
石小石Orz1 小时前
AI具身交互:实现一个会说话的3D虚拟伴侣
前端·人工智能·后端
Muen1 小时前
iOS设计模式-外观Facade
前端
Cobyte2 小时前
21.Vue Vapor 组件的实现原理
前端·javascript·vue.js
前端双越老师2 小时前
我从 0 开发的 AI Agent 智语项目发布了
前端·node.js·agent
橙某人2 小时前
LogicFlow 工作流撤销与重做:从「全量快照」到「命令模式」🎯
前端·vue.js
铁皮饭盒2 小时前
Rust版Bun1.4之前, 盘点Bun1.3新特性
前端·javascript·后端
恋猫de小郭2 小时前
如何让 AI 快速搭建一套生产 Agent ?全面理解 Agent 架构。
前端·人工智能·ai编程