type
status
date
slug
summary
tags
category
icon
password
 
开源库分享:gpt-crawler
 

项目作用

将用户传入的一个或多个url的内容爬取下来,放到json文件中,用户可以将此文件用于生成gpts,大大减少了用户获取相关数据的时间和难度。
 

操作步骤

  1. 按照readme.md文档将项目拉取到本地后,找到config.ts文件,将其中的url换成想要爬取内容的url地址,这也整个爬虫程序开始运行的地方;
  1. 提供match参数,match是一个url匹配模式,它告诉程序需要爬取的资源的url的模式是怎么样的,比如asdf/**,就可以匹配asdf/a,asdf/e/r等url地址;
  1. 提供selector参数,程序从selector中抓取具体的html文本用以爬取资源,这个参数往往是div元素的id或是class等;
  1. maxPageToCrawl:用于定义最大爬取数量,假设能爬取的数量远多于这个值,那么实际爬取量会略微多于这个值;
 

底层技术

使用了crawlee这个爬虫工具,可以用于爬虫以及浏览器模拟等操作,
  • 提供了两种模式,HTTP 模式和 Headless 模式,并且由于有 anti-blocking 以及 human-like fingerprints 机制,爬虫被封的概率大大降低了。
  • 根据主机资源自动切换并发的数量。
 

实操

现在让我们来实际运行一下项目,以爬取本网站的内容为例:
假设我的目的是爬取我写过的所有文章
  1. 找到程序运行的起始地
notion image
 
  1. 提供匹配模式
随便点一篇文章进去,你会发现,都是以https://wureny.xyz/article/所开头,于是,我们的匹配模式便是:https://wureny.xyz/article/**
 
  1. 提供selecrtor参数
打开控制台:
notion image
当我们选取<div id=”__next”>时,包含了文章所在的整个页面,这就是我们像yaodeselector;
 
  1. 提供maxPageToCrawl
此时整个网站只有六十几篇文章,于是我们将这个值设置为70;
最终整个config:
notion image
 
进入src,用npm start运行一下:
notion image
成功爬取68篇文章,再看一下output2.json文件:
notion image
成功爬到;
 
下一步,我们可以生成网站专属gpts
提供提示词:
notion image
 
上传文件:
notion image
 
看一下实际效果:
notion image
 
这个gpt做的比较粗糙,实际可以给它赋予更多的风格等,达到更好的效果;
 
 
Golang日志新选择:slog 追🥚记
Alex
Alex
某不知名青年|web2.5人士|喜欢猫与美少女
公告
type
status
date
slug
summary
tags
category
icon
password
有事请邮箱联系:alexwu7@outlook.com
🚀🚀🚀