网站上的自动/计划JavaScript

网站上的自动/计划JavaScript,javascript,automation,macros,scheduled-tasks,Javascript,Automation,Macros,Scheduled Tasks,在我的大学里有一个预订项目房间的网站;但除非你运气好或者半夜醒来,否则要真正找到一个房间并不容易。因此,我编写了一个JS代码段,用于填写所有必要的字段并提交表单 但如何使此过程自动化? 我的目的基本上是加载网站,并定期在该网站上运行JS代码段,最好不使用外部自动化/宏软件。您可以轻松地使用 const puppeteer = require('puppeteer'); setInterval(async () => { const browser = await puppeteer

在我的大学里有一个预订项目房间的网站;但除非你运气好或者半夜醒来,否则要真正找到一个房间并不容易。因此,我编写了一个JS代码段,用于填写所有必要的字段并提交表单

但如何使此过程自动化?


我的目的基本上是加载网站,并定期在该网站上运行JS代码段,最好不使用外部自动化/宏软件。

您可以轻松地使用

const puppeteer = require('puppeteer');
setInterval(async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto('https://example.com');
    await page.evaluate(() => {
        // your snippet
    });
    await browser.close();

}, 1 * 60 * 60 * 1000); // every 1 hour

你可以很容易地用,基本上像

const puppeteer = require('puppeteer');
setInterval(async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto('https://example.com');
    await page.evaluate(() => {
        // your snippet
    });
    await browser.close();

}, 1 * 60 * 60 * 1000); // every 1 hour

那么,如果不是外部自动化软件,那么代码段到底应该运行什么…?@ChrisG好吧,我在想一些VBScript或命令行与Windows任务调度程序相结合的东西。只需搜索你的问题标题。那么,如果不是外部自动化软件,代码段到底应该运行什么…?@ChrisG好吧,我在想一些VBScript或命令行的东西,再加上Windows任务调度程序。只需谷歌一下你的问题标题。是的,我实际上刚刚偶然发现了木偶演员,会尝试一下的!快速提问:我的代码片段使用了一个MutationObserver来提升功能,这对Puppeter有效吗?@Androvich是的,基本上当你评估代码时,它会起作用,就像你在浏览器控制台中运行代码一样,而Puppeter内部只使用一个chromium浏览器,请查看api的链接,它非常丰富。@Androvich如果您要使用Windows任务计划程序,您可以避免使用
setInterval
,让任务计划程序来执行,这会更有用efficient@Androvich顺便说一句,如果你最终选择了这个,请接受答案:)你基本上可以使用
page.goto
导航到不同的页面,您可以
wait page.evaluate(()=>location.href
)`要获取当前页面的url,我想这可以回答您关于两个不同页面的问题。关于评估JS文件的内容,
evaluate
函数也接受字符串形式的代码,因此您可以执行
wait page.evaluate(fs.readFileSync('somefile.JS'))
是的,实际上我刚刚偶然发现了Puppeter,将尝试一下!快速提问:我的代码片段使用了一个MutationObserver来提升功能,这对Puppeter有效吗?@Androvich是的,基本上当你评估代码时,它会起作用,就像你在浏览器控制台中运行代码一样,而Puppeter内部只使用一个chromium浏览器,请查看api的链接,它非常丰富。@Androvich如果您要使用Windows任务计划程序,您可以避免使用
setInterval
,让任务计划程序来执行,这会更有用efficient@Androvich顺便说一句,如果你最终选择了这个,请接受答案:)你基本上可以使用
page.goto
导航到不同的页面,您可以
wait page.evaluate(()=>location.href
)`要获取当前页面的url,我想这可以回答您关于两个不同页面的问题。关于评估JS文件的内容,
evaluate
函数也接受代码作为字符串,因此您可以执行
wait page.evaluate(fs.readFileSync('somefile.JS'))