Flyscrape:可定制脚本的Web抓取工具


Flyscrape是一个用 Go 编写的开源网络抓取工具。它允许使用 JavaScript 脚本从网站中提取结构化数据。Flyscrape 专为速度、灵活性和简单性而设计。

特点:

  • 它作为独立的二进制文件运行,专注于数据提取而不是请求处理。
  • 主要功能包括可配置选项、脚本能力、简单的 API、快速迭代、请求缓存和无依赖性。
  • 结合了 Go 的速度和 JavaScript 的灵活性。— 专注于数据提取而不是请求杂耍。

功能:

  • 高度可配置: 10 个选项可用于微调您的抓取工具。
  • 独立: flyscrape 作为单个二进制可执行文件出现。
  • 可编写脚本:使用 JavaScript 编写数据提取逻辑。
  • 简单的 API:使用熟悉的 API 从 HTML 页面提取数据。
  • 快速迭代:利用开发模式获得快速反馈。
  • 请求缓存:在您已经抓取的网站上重新运行脚本。
  • 零依赖:无需用 npm 包填满磁盘。

export const config = {
    url: "https://news.ycombinator.com/",
}

export default function ({ doc, absoluteURL }) {
    const title = doc.find(
"title");
    const posts = doc.find(
".athing");

    return {
        title: title.text(),
        posts: posts.map((post) => {
            const link = post.find(
".titleline > a");

            return {
                title: link.text(),
                url: link.attr(
"href"),
            };
        }),
    }
}

$ flyscrape run hackernews.js
[
  {
   
"url": "https://news.ycombinator.com/",
   
"data": {
     
"title": "Hacker News",
     
"posts": [
        {
         
"title": "Show HN: flyscrape - An standalone and scriptable web scraper",
         
"url": "https://flyscrape.com/"
        },
        ...
      ]
    }
  }
]

flyscrape适用于 MacOS、Linux 和 Windows,可从发布页面下载二进制文件。