如何在循环中运行selenium web抓取脚本并将结果发送到mongodb



我有几个在网上抓取网站的硒脚本,我需要这些脚本每10分钟自动运行一次,然后将结果发送到我的mongodb数据库,我知道如何在数据库中发送和存储数据,但我不知道如何每x个时间自动运行脚本,然后在不需要做任何事情的情况下更新数据库?

后端使用node、express和mongoose。这就是我尝试过的。。。

const router = require('express').Router()
const WebScript = require('../Scripts/WebScript.js')
router.get('/script/web-script', async (req, res) => {
const results = await WebScript.Script()
console.log(results)
}
module.exports = router

如果我在本地主机上调用路由,脚本就会运行,但否则它不会自动启动。我已经建立了一个连接到mongodb数据库的server.js,并建立了一种模式来将结果存储在mongodb中console.log(results('按照我希望的方式返回抓取的数据,但我只是不知道如何在启动服务器时自动运行,也不知道如何让它每10分钟运行一次。

有几个选项:

使用ping

Pinger基本上是每隔一段时间访问你的网站(通常是为了防止你的网站睡觉(的机器人。Uptime Robot是一个不错的选择。由于每次访问网站时都会执行脚本,因此这将非常有效。

使用setTimeout

在JavaScript:中设置一个简单的计时器

setTimeout(function() {
// Run your script here
}, 1000 * 60 * 10); // Milliseconds for 10 minutes

最新更新