创建一个index.js文件
npm i puppeteer express
1.导入express框架和puppeteer
然后搭建一个最基本的服务器架构
const express = require('express');
const router = require('./router')
const bodyParser = require('body-parser');
const app=express();
//监听客户端get和post请求
app.use(bodyParser.urlencoded({ extended: false }));
app.use(router)
app.listen(3000,()=>{
console.log('server is running on port 3000')
})
新建一个router.js文件来写路由操作
const express = require('express');
const router = express.Router();
const puppeteer=require('./puppeteer')
const RPA=async(req,res,next)=>{
// console.log(req.body)
try {
// 获取请求体数据
const data = req.body;
// 对数据进行验证和处理
if (!data || typeof data !== 'object') {
throw new Error('Invalid data format');
}
let result=await puppeteer.Rpa(req.body.parser)
req.data=result
next()
// 处理数据...
} catch (error) {
// 捕获异常并返回错误信息
console.error('Error processing request:', error);
res.status(400).json({ error: error.message });
}
}
router.post('/tianji',RPA,(req, res) => {
res.status(200).json({
code: '200',
data: req.Base64,
status: 'success',
filename:'短信记录',
secretId:req.body.secretId
});
});
module.exports = router;
写了一个RPA的路由中间件,当用户请求/tianji的路由时,先执行中间件,等中间件执行完再返回数据。细心的人发现了缺少了对应的RPA操作.然后新建一个puppeteer.js文件,
const puppeteer = require('puppeteer');
const Rpa=async(parser)=>{
return new Promise(async(resolve)=>{
const browser = await puppeteer.launch({
headless: true,
executablePath: 'C:/Program Files/Google/Chrome/Application/chrome.exe'//配置chrome路径
});
try{
const page = await browser.newPage();
await page.goto('https://xinghuo.xfyun.cn/desk');
await page.screenshot({ path: 'example.png' });
await browser.close();
}
catch{
}
})
}
module.exports=Rpa;
注意配置自己的浏览器地址,这里只是做了一些简单的自动化脚本,需要复杂的我后续会出教程。