|
@@ -5,7 +5,7 @@ const fs = require('fs');
|
|
|
//need: reply_info, sign
|
|
//need: reply_info, sign
|
|
|
//from url: https://testmis.ssti.net.cn/xswxcs/?reply_info=******&sign=******
|
|
//from url: https://testmis.ssti.net.cn/xswxcs/?reply_info=******&sign=******
|
|
|
const info = [
|
|
const info = [
|
|
|
- ['reply_info', 'sign'],
|
|
|
|
|
|
|
+ ['reply_info', 'sign']
|
|
|
];
|
|
];
|
|
|
|
|
|
|
|
let infoOK = [];
|
|
let infoOK = [];
|
|
@@ -19,7 +19,7 @@ function getDate() {
|
|
|
|
|
|
|
|
async function interval() {
|
|
async function interval() {
|
|
|
const browser = await puppeteer.launch({
|
|
const browser = await puppeteer.launch({
|
|
|
- headless: false, // 是否隐藏窗口(默认true)
|
|
|
|
|
|
|
+ // headless: false, // 是否隐藏窗口(默认true)
|
|
|
// defaultViewport: {width: 800, height: 600} // 截图大小
|
|
// defaultViewport: {width: 800, height: 600} // 截图大小
|
|
|
});
|
|
});
|
|
|
let lastDay = null; // 记录上一秒的日期
|
|
let lastDay = null; // 记录上一秒的日期
|
|
@@ -35,8 +35,7 @@ async function interval() {
|
|
|
// 日期变动,清空数组
|
|
// 日期变动,清空数组
|
|
|
infoOK = [];
|
|
infoOK = [];
|
|
|
}
|
|
}
|
|
|
- console.log(hour, min, sec);
|
|
|
|
|
- if ((hour === 0 && min < 30) ||(hour === 0 && min === 30 && sec <= 30) || hour >= 16) {
|
|
|
|
|
|
|
+ if ((hour === 0 && min < 30) || (hour === 0 && min === 30 && sec <= 30) || hour >= 16) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
for (let i = 0, j = info.length; i < j; i++) {
|
|
for (let i = 0, j = info.length; i < j; i++) {
|
|
@@ -45,10 +44,10 @@ async function interval() {
|
|
|
try {
|
|
try {
|
|
|
await run(browser, info[i][0], info[i][1]);
|
|
await run(browser, info[i][0], info[i][1]);
|
|
|
} catch (e) {
|
|
} catch (e) {
|
|
|
- console.log(i, e);
|
|
|
|
|
|
|
+ console.log("[" + hour + " " + min + " " + sec + "]", i, e);
|
|
|
setTimeout(function () {
|
|
setTimeout(function () {
|
|
|
infoOK[i] = false; // 出错,一分钟后重试
|
|
infoOK[i] = false; // 出错,一分钟后重试
|
|
|
- }, 10000);
|
|
|
|
|
|
|
+ }, 60000);
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -80,6 +79,7 @@ async function run(browser, replyInfo, sign) {
|
|
|
reject("URL Error");
|
|
reject("URL Error");
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
try {
|
|
try {
|
|
|
await page.goto("https://testmis.ssti.net.cn/xswxcs/pages/Epidemic/EpidemicApply.aspx", {waitUntil: 'networkidle2'});
|
|
await page.goto("https://testmis.ssti.net.cn/xswxcs/pages/Epidemic/EpidemicApply.aspx", {waitUntil: 'networkidle2'});
|
|
|
} catch (e) {
|
|
} catch (e) {
|
|
@@ -110,22 +110,42 @@ async function run(browser, replyInfo, sign) {
|
|
|
reject("Get Name Error");
|
|
reject("Get Name Error");
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
- console.log(name);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ await page.on('response', async (response) => {
|
|
|
|
|
+ if (response.url() === "https://testmis.ssti.net.cn/xswxcs/Api/MedicalObHandle.ashx?action=add") {
|
|
|
|
|
+ const data = await response.json();
|
|
|
|
|
+ if (data["msg"].indexOf("成功") !== -1) {
|
|
|
|
|
+ console.log(name + " 成功");
|
|
|
|
|
+ try {
|
|
|
|
|
+ await page.screenshot({path: "img/" + name + "-" + getDate() + '.png'});
|
|
|
|
|
+ } catch (e) {
|
|
|
|
|
+ // 捕捉可能的截图错误
|
|
|
|
|
+ }
|
|
|
|
|
+ // await sleep(2000);
|
|
|
|
|
+ await page.close();
|
|
|
|
|
+ resolve();
|
|
|
|
|
+ } else {
|
|
|
|
|
+ console.log(name + " 失败:" + data["msg"]);
|
|
|
|
|
+ await page.close();
|
|
|
|
|
+ reject(data["msg"]);
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 不应该还有其他请求(也可能是提交URL发生改变)
|
|
|
|
|
+ await page.close();
|
|
|
|
|
+ reject("Unknown URL: " + response.url());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ });
|
|
|
try {
|
|
try {
|
|
|
await page.click("#Apply_Epidemic");
|
|
await page.click("#Apply_Epidemic");
|
|
|
} catch (e) {
|
|
} catch (e) {
|
|
|
await page.close();
|
|
await page.close();
|
|
|
reject("Submit Error");
|
|
reject("Submit Error");
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- try {
|
|
|
|
|
- await page.screenshot({path: "img/" + name + "-" + getDate() + '.png'});
|
|
|
|
|
- } catch (e) {
|
|
|
|
|
- // 捕捉可能的截图错误
|
|
|
|
|
}
|
|
}
|
|
|
- await sleep(2000);
|
|
|
|
|
- await page.close();
|
|
|
|
|
- resolve();
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // await sleep(2000);
|
|
|
|
|
+ // await page.close();
|
|
|
|
|
+ // resolve();
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
|