type
status
date
slug
summary
tags
category
icon
password
开源库分享:gpt-crawler
项目作用
将用户传入的一个或多个url的内容爬取下来,放到json文件中,用户可以将此文件用于生成gpts,大大减少了用户获取相关数据的时间和难度。
操作步骤
- 按照readme.md文档将项目拉取到本地后,找到config.ts文件,将其中的url换成想要爬取内容的url地址,这也整个爬虫程序开始运行的地方;
- 提供match参数,match是一个url匹配模式,它告诉程序需要爬取的资源的url的模式是怎么样的,比如asdf/**,就可以匹配asdf/a,asdf/e/r等url地址;
- 提供selector参数,程序从selector中抓取具体的html文本用以爬取资源,这个参数往往是div元素的id或是class等;
- maxPageToCrawl:用于定义最大爬取数量,假设能爬取的数量远多于这个值,那么实际爬取量会略微多于这个值;
底层技术
使用了crawlee这个爬虫工具,可以用于爬虫以及浏览器模拟等操作,
- 提供了两种模式,HTTP 模式和 Headless 模式,并且由于有 anti-blocking 以及 human-like fingerprints 机制,爬虫被封的概率大大降低了。
- 根据主机资源自动切换并发的数量。
实操
现在让我们来实际运行一下项目,以爬取本网站的内容为例:
假设我的目的是爬取我写过的所有文章
- 找到程序运行的起始地
- 提供匹配模式
随便点一篇文章进去,你会发现,都是以https://wureny.xyz/article/所开头,于是,我们的匹配模式便是:https://wureny.xyz/article/**
- 提供selecrtor参数
打开控制台:
当我们选取<div id=”__next”>时,包含了文章所在的整个页面,这就是我们像yaodeselector;
- 提供maxPageToCrawl
此时整个网站只有六十几篇文章,于是我们将这个值设置为70;
最终整个config:
进入src,用npm start运行一下:
成功爬取68篇文章,再看一下output2.json文件:
成功爬到;
下一步,我们可以生成网站专属gpts
提供提示词:
上传文件:
看一下实际效果:
这个gpt做的比较粗糙,实际可以给它赋予更多的风格等,达到更好的效果;
- 作者:Alex
- 链接:https://nextme.one/wureny.eth/article/gptcrawler
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。