asrt/Auto-keep-online
0
1const axios = require('axios');2const fs = require('fs');3const cron = require('node-cron');4const http = require('http');5const path = require('path');6const port = process.env.PORT || 7860;7 8// 定义要访问的网页URL数组9const urls = [10 'https://www.google.com', // 此处可备注平台名称11 'https://www.google.com', // 此处可备注平台名称12 'https://www.google.com', // 此处可备注平台名称13 'https://www.google.com', // 此处可备注平台名称14 'https://www.google.com', // 此处可备注平台名称15 'https://www.google.com', // 此处可备注平台名称16 'https://www.google.com', // 此处可备注平台名称17 18 // 添加更多的URL19];20 21// 创建日志文件22//const logFile = 'visit-log.txt';23 24// 访问网页并将结果写入日志25async function scrapeAndLog(url) {26 try {27 const response = await axios.get(url);28 const timestamp = new Date().toISOString();29 const logMessage = `${timestamp}: Web visited Successfully ${url}\n`;30 31 // 将访问结果写入日志文件32// fs.appendFileSync(logFile, logMessage);33 34 console.log(logMessage);35 } catch (error) {36 const timestamp = new Date().toISOString();37 const errorMessage = `${timestamp}: Web visited Error ${url}: ${error.message}\n`;38 39 // 将错误信息写入日志文件40// fs.appendFileSync(logFile, errorMessage);41 42 console.error(errorMessage);43 }44}45 46// 使用cron来安排定期任务47cron.schedule('*/2 * * * *', () => {48 console.log('Running webpage access...');49 // 循环访问每个URL50 urls.forEach((url) => {51 scrapeAndLog(url);52 });53});54 55 56const server = http.createServer((req, res) => {57 if (req.url === '/') {58 const filePath = path.join(__dirname, 'index.html');59 60 fs.readFile(filePath, (err, data) => {61 if (err) {62 res.writeHead(500);63 res.end('Error loading index.html');64 } else {65 res.writeHead(200, { 'Content-Type': 'text/html' });66 res.end(data);67 }68 });69 } else {70 res.writeHead(404);71 res.end('Not Found');72 }73});74 75server.listen(port, () => {76 console.log(`Server is running on port ${port}`);77});78 