登录
注册
node.js 学习社区
nodejs异步执行的问题?能不能按顺序执行呀?我想1分钟抓取一次,然后对匹配的数据每6少发个邮件提醒。

ilikenode

2016-09-02 12:14

var request = require('request');
var cheerio = require('cheerio');
var iconv = require('iconv-lite');
var url = 'http://www.bbspj.com/forum-89-';
var em1=require('./email');
var url_list = [];
var str=["aaa","aaa1","bob","sss","ws"];
var em=new em1();
for (var i = 1; i < 3; i++) {
    url_list.push(url + i + '.html');
}
function myfuc(){
    var list="";
    //url_list.forEach(function(arr_url){
    for(var j=0;j<url_list.length;j++){
        console.log('正在抓取' + url_list[j] + '的数据...');
        var option={
            url: url_list[j],
            encoding: null
        }
        request(option,function(err,res,body) {
            if (err) return console.error(err);
            body = iconv.decode(body,'gbk');
            var $ = cheerio.load(body);
            $('.xst').each(function() {
            var $me = $(this);
            arr1=$(this).text();
            //console.log(arr1);
            for(var k=0;k<str.length;k++){
                if(arr1.indexOf(str[k])>=0){
                    setTimeout(em.sendText('提醒',"论弹前2页中有关帖子:标题是"+arr1,"44444@qq.com"),6000);
                }
            };
            });
        });
    }
}
setInterval(myfuc,60*1000)

回复 · 2

发表回复

你可以在回复中 @ 其他人