Cathy·新闻

Cathy 新闻抓取扩展 — 安装指南

用你的浏览器抓 Cloudflare / Incapsula 封锁站, 人过验证码, 结果回传爬虫服务。当前扩展版本 v1.5.4

它是干什么的

爬虫服务器是机房 IP(49.51.50.12), 被 optics.org(Incapsula/Radware)、EE Times、Telecoms.com 等 WAF 封锁, 服务器直抓或无头浏览器都拿不到(只返回挑战页)。本扩展用你自己的浏览器(家用 IP + 真实指纹) 去抓这些封锁站, 遇验证码由你手动过, 抓到的文章列表(标题 + 直达链接 + 日期 + 正文)回传爬虫服务, 爬虫每天 04:02 跑时自动读取, 命中新闻进当天 HTML 页面和邮件。

架构

你的浏览器 (电脑 Chrome / 手机 Kiwi, 家用 IP)
   ──HTTPS──> https://news.cathy.zaymuc.com/ext/   (nginx 反代, 443)
                    └──> 127.0.0.1:9000  (WAF 层)
                              └──> 127.0.0.1:7321  extension_server.py (systemd 守护)
爬虫 crawler.py 在服务器本机直接读 127.0.0.1:7321 (不经 nginx, 快)

服务端已是 systemd 守护(cathy-ext-server.service, 开机自启, 挂了自动拉起), 你不用管服务端, 只装扩展。任务清单是动态下发的, 改源不用重装扩展

一次性安装

1. 下载扩展

下载地址(公网, HTTPS, zip 里不含 token):

https://news.cathy.zaymuc.com/cathy-extension.zip

解压后是一个 extension/ 文件夹(manifest.json + background.js + popup.html/js + icons/)。

2. 装进浏览器

3. 配置扩展

点扩展图标打开弹窗, 填:

关于 token: 它是扩展和服务端之间的共享密钥, 走 Authorization: Bearer 头(不放 URL, 不落 nginx access log)。 手机和电脑用同一个 token, 抓取结果都回传同一个服务。如需更换, 改服务器 config.pyEXT_TOKEN 并在所有扩展弹窗里同步。

抓取

点「立即抓一轮」。扩展会:

  1. 从服务拉任务清单(当前 9 个封锁站, 见下表)。
  2. 后台开目标站标签页, 注入脚本读文章列表(标题 + 直达链接 + 日期)。
  3. 进每篇文章页抓发布日期 + 正文(喂 LLM 二段精筛)。
  4. 若弹验证码(Incapsula/CF/Radware 挑战), 会发系统通知 → 切到该标签页手动过 → 抓取自动继续。
  5. 回传服务, 落盘到服务器 ext_results/

弹窗显示: 本浏览器 ID / 状态(抓取中·正在执行 X / 空闲) / 当前认领 / 上一轮完成时间 / 下一轮定时 / 各源最近抓取条数和时间。

MV3 硬限制(必读): 扩展是 Manifest V3, service worker 只在 Chrome 开着时运行。 关掉 Chrome = 扩展完全停(定时 alarm 也不触发)。要让爬虫每天 04:02 拿到当天新鲜数据, Chrome 得过夜开着(电脑开着一夜自动每 30 分钟抓, 凌晨 3 点左右就有当天数据, 4:02 cron 发邮件时正好新鲜)。 没开 Chrome 过夜, 爬虫会读 24 小时内旧数据(EXT_MAX_AGE=86400, 仍接受, 不阻塞其它源)。重开 Chrome 时扩展延迟 ~15 秒自动跑一轮。

当前抓取的封锁站(9 个, 服务端驱动)

分类抓正文
Optics.org光通信/光器件
Lightwave Online光通信/光器件
Laser Focus World光通信/光器件
Photonics Spectra光通信/光器件
Cabling Install光通信/光器件
LEDs Magazine光通信/光器件
Data Center FrontierIDC
EE Times国际 IT
Telecoms.com光通信/光器件

加/删/改源走服务端管理页, 不用重装扩展

管理页(可选)

浏览器打开(HTML 外壳公开, 数据操作要 token):

https://news.cathy.zaymuc.com/ext/admin

粘贴 token → 加载, 能看各源状态(最近回传时间/条数/新鲜/冷却剩余) + 可编辑任务清单 + 浏览器列表(认领/贡献/启用/释放租约)。

爬虫集成(自动, 不用你管)

服务器每天 04:02(/etc/cron.d/cathy-news)跑 crawler.py:

故障排查