终极指南:如何用GPT-Crawler和GitHub Actions实现自动化知识爬取
终极指南:如何用GPT-Crawler和GitHub Actions实现自动化知识爬取
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.ts的crawl函数中实现:
- 支持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系统
- 执行步骤:
- 检出代码仓库
- 配置Node.js环境
- 安装项目依赖
- 运行爬取命令
- 自动提交爬取结果到仓库
高级配置与优化
自定义爬取规则
你可以在config.ts中添加更多高级配置:
selector:指定内容提取选择器exclude:设置排除链接规则cookie:添加认证cookieresourceExclusions:排除不需要的资源类型
调整爬取频率
修改cron表达式可以调整爬取频率:
0 0 * * *:每天午夜0 */6 * * *:每6小时0 9 * * 1:每周一上午9点
处理大型网站
对于大型网站,建议:
- 减少
maxPagesToCrawl数值 - 增加爬取间隔时间
- 使用多个配置文件分别爬取不同 sections
常见问题解决
爬取结果为空
检查:
- 起始URL是否正确
match规则是否匹配目标页面- 网站是否需要登录认证(可通过
cookie配置解决)
爬取速度慢
优化:
- 增加资源排除规则
- 减少并发请求数
- 延长页面加载等待时间
GitHub Actions执行失败
排查:
- 检查Node.js版本是否兼容
- 查看工作流日志定位错误
- 确认依赖安装是否成功
总结
通过GPT-Crawler和GitHub Actions的结合,你可以轻松构建一个自动化的知识爬取系统。只需简单配置,就能定期获取最新内容并生成知识库,为你的自定义GPT提供持续更新的数据源。无论是个人使用还是团队协作,这个方案都能大大提高工作效率,让知识管理变得更加简单高效。
开始使用GPT-Crawler,释放自动化知识收集的强大能力吧!
更多推荐



所有评论(0)