我正在使用nodejs构建一个抓取应用程序,我希望它每天抓取某个网站两次。 现在,有一个问题。
我习惯做的是,在客户端,有人提出请求,应用程序会抓取数据并显示结果。
但是如果我希望应用程序一天只抓取两次,而无需客户端向服务器发出请求,该怎么办? 怎么做到的?
基本上,这是一个用户输入其搜索关键字的网站。 该应用每天都会搜索该关键字,并在页面上显示该关键字时通知用户。 因此,如何做到这一点而又无需用户每天搜索关键字?
似乎我们可以使用cron作业进行调度,并且抓取将每天两次或我选择的任何时间进行,但是问题是如何将数据从抓取发送到客户端? 还是如何通知站点用户已找到该关键字,他就可以访问该站点并进行查看?
答案 0 :(得分:1)
但是如果我希望应用程序一天只抓取两次,而无需客户端向服务器发出请求,该怎么办?怎么做到的?
您使用任务计划程序,例如Cron。
我如何通知网站用户找到了该关键字,他就可以访问该网站并进行查看?
有很多选择。
答案 1 :(得分:0)
request
npm模块将允许您执行此操作。每隔10秒从外部API查询以下(服务器)应用程序:
const request = require('request');
function doRequest() {
request('http://www.randomtext.me/api/', function (error, response, body) {
console.log('error:', error);
console.log('statusCode:', response && response.statusCode);
console.log('body:', body);
// do whatever you need to do with you result
// and notify the user (... not clear what channel you want to use)
// could be done with sockets, email, ... or text messages (twillio) ...
});
}
setInterval(doRequest, 10000); // <-- adapt your intervall here
所以这是服务器到服务器请求的简单示例……希望能帮上忙。