如何在Repl.it中实现网页永久保活/AFK?
解决Repl.it上网页持续保活(AFK/永久在线)的方案
方法1:定时请求保活Repl实例
Repl.it的免费实例会在一段时间无请求后休眠,通过定时向自己的Repl URL发送请求,就能维持实例在线状态。以下是Node.js实现示例:
const fetch = require('node-fetch'); const REPL_URL = '你的Repl项目公开URL'; // 替换为实际地址 // 每5分钟发送一次保活请求 setInterval(async () => { try { await fetch(REPL_URL); console.log(`[${new Date().toLocaleString()}] 已发送保活请求`); } catch (err) { console.error(`保活请求失败: ${err.message}`); } }, 5 * 60 * 1000);
将这段代码加入Repl项目主文件,启动后即可自动触发定时请求,防止实例休眠。
方法2:模拟用户操作维持目标页面活跃
如果目标网页会因长时间无操作自动关闭,可使用Puppeteer模拟简单交互(滚动、点击),模拟Chrome的AFK状态:
- 先在Repl终端安装依赖:
npm install puppeteer
- 编写保活脚本:
const puppeteer = require('puppeteer'); const fetch = require('node-fetch'); const REPL_URL = '你的Repl项目公开URL'; const TARGET_URL = '目标网站URL'; // 替换为实际地址 (async () => { // 启动浏览器并打开目标页面 const browser = await puppeteer.launch({ args: ['--no-sandbox', '--disable-setuid-sandbox'] }); const page = await browser.newPage(); await page.goto(TARGET_URL); console.log(`已打开目标页面: ${TARGET_URL}`); // 每2分钟模拟一次页面滚动交互 setInterval(async () => { await page.evaluate(() => { window.scrollBy(0, 100); setTimeout(() => window.scrollBy(0, -100), 500); }); console.log(`[${new Date().toLocaleString()}] 已模拟页面交互`); }, 2 * 60 * 1000); // 同时维持Repl实例在线 setInterval(async () => { try { await fetch(REPL_URL); console.log(`[${new Date().toLocaleString()}] 已发送实例保活请求`); } catch (err) { console.error(`实例保活失败: ${err.message}`); } }, 5 * 60 * 1000); })();
注意事项
- 务必替换代码中的
REPL_URL和TARGET_URL为实际地址 - Repl.it免费实例有资源限制,可适当延长定时任务间隔避免卡顿
- 若目标网站有反爬机制,降低模拟操作频率,防止被拦截
内容的提问来源于stack exchange,提问作者Liman
相关产品推荐
相关产品推荐

