终极指南:如何用GPT-Crawler和GitHub Actions实现自动化知识爬取

【免费下载链接】gpt-crawler Crawl a site to generate knowledge files to create your own custom GPT from a URL 【免费下载链接】gpt-crawler 项目地址: https://gitcode.com/GitHub_Trending/gp/gpt-crawler

GPT-Crawler是一款强大的开源工具,能够从指定URL爬取网站内容并生成知识文件,帮助你创建自定义GPT。结合GitHub Actions的自动化能力,你可以轻松实现定期爬取和更新知识数据,无需手动操作。本文将详细介绍如何搭建这一自动化知识爬取系统,即使是新手也能快速上手。

什么是GPT-Crawler?

GPT-Crawler是一个基于Node.js的爬虫工具,专为生成GPT知识库设计。它能够:

  • 从指定网站URL开始爬取内容
  • 遵循链接规则匹配相关页面
  • 提取页面标题和内容
  • 将结果保存为JSON格式文件
  • 控制爬取页面数量和输出文件大小

项目核心代码位于src/core.ts,其中定义了爬取逻辑和文件写入功能。默认配置文件config.ts提供了基础的爬取参数设置。

为什么选择GitHub Actions实现自动化?

GitHub Actions提供了免费的CI/CD服务,非常适合实现定期自动化任务:

  • 无需服务器即可运行定时任务
  • 简单的YAML配置文件定义工作流程
  • 与GitHub仓库无缝集成
  • 支持多种触发方式(定时、推送、手动)

快速开始:安装与基础配置

1. 克隆仓库

首先将项目克隆到本地:

git clone https://gitcode.com/GitHub_Trending/gp/gpt-crawler
cd gpt-crawler

2. 安装依赖

使用npm安装项目依赖:

npm install

3. 配置爬取参数

编辑项目根目录下的config.ts文件,设置爬取目标和参数:

export const defaultConfig: Config = {
  url: "https://example.com/docs",  // 起始URL
  match: "https://example.com/docs/**",  // 匹配规则
  maxPagesToCrawl: 50,  // 最大爬取页面数
  outputFileName: "output.json",  // 输出文件名
  maxTokens: 2000000,  // 最大Token数
};

核心功能解析

爬取逻辑

GPT-Crawler使用PlaywrightCrawler进行网页爬取,核心爬取逻辑在src/core.tscrawl函数中实现:

  • 支持CSS和XPath选择器
  • 可配置资源排除规则
  • 支持cookie设置
  • 自动处理链接发现和队列管理

数据处理

爬取完成后,系统会将结果合并为JSON文件,通过write函数实现:

  • 自动分割大文件
  • 控制Token数量
  • 格式化输出内容

实现GitHub Actions自动化

创建工作流程文件

在项目中创建.github/workflows/crawl.yml文件,定义自动化爬取流程:

name: 自动知识爬取

on:
  schedule:
    - cron: '0 0 * * *'  # 每天午夜执行
  workflow_dispatch:  # 允许手动触发

jobs:
  crawl:
    runs-on: ubuntu-latest
    steps:
      - name: 检出代码
        uses: actions/checkout@v4

      - name: 设置Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '18'

      - name: 安装依赖
        run: npm install

      - name: 运行爬取
        run: npm start

      - name: 提交结果
        uses: stefanzweifel/git-auto-commit-action@v5
        with:
          commit_message: '自动更新爬取结果'
          file_pattern: 'output-*.json'

配置说明

这个工作流程包含以下关键部分:

  • 触发条件:每天自动执行,也可手动触发
  • 运行环境:使用Ubuntu系统
  • 执行步骤
    1. 检出代码仓库
    2. 配置Node.js环境
    3. 安装项目依赖
    4. 运行爬取命令
    5. 自动提交爬取结果到仓库

高级配置与优化

自定义爬取规则

你可以在config.ts中添加更多高级配置:

  • selector:指定内容提取选择器
  • exclude:设置排除链接规则
  • cookie:添加认证cookie
  • resourceExclusions:排除不需要的资源类型

调整爬取频率

修改cron表达式可以调整爬取频率:

  • 0 0 * * *:每天午夜
  • 0 */6 * * *:每6小时
  • 0 9 * * 1:每周一上午9点

处理大型网站

对于大型网站,建议:

  • 减少maxPagesToCrawl数值
  • 增加爬取间隔时间
  • 使用多个配置文件分别爬取不同 sections

常见问题解决

爬取结果为空

检查:

  1. 起始URL是否正确
  2. match规则是否匹配目标页面
  3. 网站是否需要登录认证(可通过cookie配置解决)

爬取速度慢

优化:

  1. 增加资源排除规则
  2. 减少并发请求数
  3. 延长页面加载等待时间

GitHub Actions执行失败

排查:

  1. 检查Node.js版本是否兼容
  2. 查看工作流日志定位错误
  3. 确认依赖安装是否成功

总结

通过GPT-Crawler和GitHub Actions的结合,你可以轻松构建一个自动化的知识爬取系统。只需简单配置,就能定期获取最新内容并生成知识库,为你的自定义GPT提供持续更新的数据源。无论是个人使用还是团队协作,这个方案都能大大提高工作效率,让知识管理变得更加简单高效。

开始使用GPT-Crawler,释放自动化知识收集的强大能力吧!

【免费下载链接】gpt-crawler Crawl a site to generate knowledge files to create your own custom GPT from a URL 【免费下载链接】gpt-crawler 项目地址: https://gitcode.com/GitHub_Trending/gp/gpt-crawler

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐