const axios = require('axios'); const fs = require('fs'); const cron = require('node-cron'); const http = require('http'); const path = require('path'); const port = process.env.PORT || 7860; // 定义要访问的网页URL数组 const urls = [ //huggingface 'https://connorlixyz-autokeepgormtest2mins.hf.space', // huggingface-本项目 //Goorm 'https://my-nodejs-ivzud.run-us-west2.goorm.site', // Goorm-linshi 'https://ide-run.goorm.io/workspace/d8MS7D1BaRxuHgRKnSW?token=ada5536dbe5768f245c935ab547af078&guestname=0123', // MC-servers-py // 添加更多的URL ]; // 创建日志文件 //const logFile = 'visit-log.txt'; // 访问网页并将结果写入日志 async function scrapeAndLog(url) { try { const response = await axios.get(url, { headers: { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36', 'Referer': 'https://ide-run.goorm.io/workspace/d8MS7D1BaRxuHgRKnSW?token=ada5536dbe5768f245c935ab547af078&guestname=0123', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', 'Cookie': 'goormaccounts.sid=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MDQwMDkzNTQsIlRva2VuVHlwZSI6ImxldmVsMSIsImlkIjoibWlpODc4ajFjX2d1ZXN0IiwiZW1haWwiOiJtaWk4NzhqMWNfZ3Vlc3QiLCJjcmVhdGVkYXRlIjoxNzAzNDA0NTU0LCJzZXNzaW9uaWQiOiJHcHcxRW50ZWViOW9jaFFNa0p0cm5UaXdUNjRWSTlrSHM3RDUtTDFWRUhFPSIsIlRUTCI6MH0.i1TQxQGjA2zoA6XzfEHButaskPFB9OPw-2t7I9nQjkZT7Kp6U4q5KvcfUdATRvHOl9_7ivnF2f-zRl2cIj1QsYxCUE9n08fqjCUQAsdHOufQniyo2ubPxwnZeY8Q2NENJOdo-S_yKIFxAJmkzp39WnczpU9ECMyvpGSaW-kgO6cOc1rhpG8Qw8y4Bxujg_Y7WPsu4P2_lm94Ra82STo9J_ackAuYt07DNPGv8dewwqUJl2Mol1IR0V7or2snALG7ZJaxDOV5F-dpCgxyjoxp4nZu9HSAZ1ZJW2wa2JCN4KNkQmr2E1a_spxXtKuFagF0FX58GHs0bFIpHdVnB9os6A; io=LrGg71rINtQ8vOvRABdF; ch-veil-id=fd2d2bdb-49f9-4ef2-83bf-f8a138b60994; ch-session-90340=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzZXMiLCJrZXkiOiI5MDM0MC02NTg3ZTQ0MzZhNjg3NDc2MWE2MiIsImlhdCI6MTcwMzQwNDYxMSwiZXhwIjoxNzA1OTk2NjExfQ.jGjxAoNOU20W00r_lL2EFrOS4snMkw13Im406CIuZTs; AWSALB=qVOqrbXrCdgN5OcOdYA+TcNy7NL/45KrHER8B11QKkNbA4/EX+H7uPuKlsWup3Mu9pYvZC3/vT5HG+Z3I3C8WjNRV8Q+hRLikr6AbUCv+TvLFsqCxjFNaB+QcQeL; AWSALBCORS=qVOqrbXrCdgN5OcOdYA+TcNy7NL/45KrHER8B11QKkNbA4/EX+H7uPuKlsWup3Mu9pYvZC3/vT5HG+Z3I3C8WjNRV8Q+hRLikr6AbUCv+TvLFsqCxjFNaB+QcQeL; ide.goorm.sid=s%3AE7z7m6YxTo_GhQtyl9EH_uBKJKKnnILr.wFxZrrH%2BSLBFIUh%2BjrS0YYotEDdcLGCqRH%2Fbn33xANc' } }); const timestamp = new Date().toISOString(); const logMessage = `${timestamp}: Web visited Successfully ${url}\n`; // 将访问结果写入日志文件 // fs.appendFileSync(logFile, logMessage); console.log(logMessage); } catch (error) { const timestamp = new Date().toISOString(); const errorMessage = `${timestamp}: Web visited Error ${url}: ${error.message}\n`; // 将错误信息写入日志文件 // fs.appendFileSync(logFile, errorMessage); console.error(errorMessage); } } // 使用cron来安排定期任务 cron.schedule('0 */1 * * * *', () => { console.log('Running webpage access...'); // 循环访问每个URL urls.forEach((url) => { scrapeAndLog(url); }); }); const server = http.createServer((req, res) => { if (req.url === '/') { const filePath = path.join(__dirname, 'index.html'); fs.readFile(filePath, (err, data) => { if (err) { res.writeHead(500); res.end('Error loading index.html'); } else { res.writeHead(200, { 'Content-Type': 'text/html' }); res.end(data); } }); } else { res.writeHead(404); res.end('Not Found'); } }); server.listen(port, () => { console.log(`Server is running on port ${port}`); });