Top HackerNews 使用的 3 种爬虫方法

Mar 2025

方法一:HTTP GET

async function getHTML(url: string) {
  const res = await fetch(url);
  return await res.text();
}

优点:最简单

缺点:无法应对复杂反扒机制

方法二:Web Archive

Web Archive 保存了互联网主流网站的大部分内容, 例如 https://web.archive.org/https://www.bbc.com/news/live/c625ex282zzt

代码如下:

async function getWebArchiveHTML(url: string) {
  const res = await fetch("https://web.archive.org/" + url);
  return await res.text();
}

优点:简单

缺点:可能没被收录,不是实时

方法三:Headless Browser

推荐几个库:

  1. Playwright
  2. Cloudflare Bypass,实测无法绕过 Cloudflare
  3. Another Cloudflare Bypass 可以大概率绕过 Cloudflare
  4. 也可以直接使用自用浏览器

优点:最有效,成功率最高

缺点

  • 内存占用高,延迟高
  • 需要对抗反扒机制,例如浏览器指纹、Captcha/Challenge Bypass,这是一个双方都在进化的、长期的猫鼠游戏

实际方案

联合使用三种方法,可以兼顾效率和成功率 🤪