NodeJs的一次实用(定时抓取数据)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NodeJs的一次实用(定时抓取数据)相关的知识,希望对你有一定的参考价值。

参考技术A 想定时抓取某个接口的数据,然后解析数据,通过邮件通知给我。

1、 https 用来发送网络请求
2、 node-schedule 用来实现定时任务
3、 nodemailer 用来发送邮件

介绍一下简单用法

我这里使用的QQ邮箱,使用第三方发送邮件需要打开授权,我这里开启的是 POP3/IMAP ,然后用授权码登录。 授权方法->

哈哈,还是比较成功的,达到了我预期的目标。

邮件接收的延迟比较大,大概3分钟左右,耐心等候,另外我在QQ邮箱的发件箱里没看到已发送的邮件,可能不会显示。
demo就不发了,比较简单,这几个模块组装起来就可以运行了。

nodejs——定时器

参考技术A JavaScript中可以实现定时器功能的有两个函数——setTimeout和setInterval,二者的不同是setTimeout只执行一次,而setInterval是以指定的时间间隔重复执行。setTimeout可以使用clearTimeout取消,setInterval可以使用clearInterval取消。

有时,我们会用setTimeout(callback,0)将任务推迟一段很短的时间,但是其实通过process.nextTick(callback)来实现会更好,因为Node中的事件循环在一个处理事件队列的循环里运行,每循环一次称为一个“tick”。使用process.nextTick(callback)回调函数会在事件队列内所有事件处理完毕后,会在下次事件循环之前被调用,即进入下个event loop前执行;而setTimeout(callback,0)把回调延迟到后面的某个event loop执行,具体由设置的延时时间和event loop的执行时间决定。

这样可以保证my_async_function函数是顺序执行。

以上是关于NodeJs的一次实用(定时抓取数据)的主要内容,如果未能解决你的问题,请参考以下文章

Phantomjs+Nodejs+Mysql数据抓取(1.数据抓取)

Phantomjs+Nodejs+Mysql数据抓取(2.抓取图片)

puppeteer + nodejs 抓取网页内容

运用python抓取博客园首页的所有数据,而且定时持续抓取新公布的内容存入mongodb中

Nodejs实现爬虫抓取数据

读取 kafka 主题并通过 Rest API 公开数据以供 prometheus 抓取(Nodejs)