异步爬取数据

先引入

var async = require('async');

然后同样上代码

var topicUrls = [];//存所有地址
http.get(url,function(res){
var html='';
res.on('data',function(data){
html +=data
})
res.on('end', function() {
var $=cheerio.load(html);
$("#subShowContent1_news2 h2 a").each((iten,i)=>{
var href=$(i).attr('href');
topicUrls.push(href); })
console.log(topicUrls);
// 控制最大并发数为5,异步执行函数
async.mapLimit(topicUrls,5,function(myurl, callback){
//console.log(myurl);
fetchUrl(myurl, callback);
},function (err, result) {
console.log(result);
});
      
});
}).on('error', function() {
console.log("获取数据出错!")
});
function fetchUrl(myurl,callback) {
var fetchStart = new Date().getTime();
http.get(myurl,function(res){
var html='';
res.on('data',function(data){
html +=data
}) res.on('end', function() {
var $=cheerio.load(html); $("#article").each((iten,i)=>{
console.log($(i).text());
})
      console.log("数据加载完毕");
});
}).on('error', function() {
console.log("获取数据出错!")
}); }

结果显示如下

最新文章

  1. 设置这些之后,Google突然可以打开了
  2. Ceph剖析:Paxos算法实现
  3. 运用DebugDiag诊断ASP.Net异常
  4. CentOS 6.6 配置PuTTY远程登录
  5. LeetCode - 44. Wildcard Matching
  6. 低功耗蓝牙(BLE)透传模块 ——RF-BM-S01(BQB认证)
  7. Linux /dev 自动创建设备节点
  8. Spring IOC以及三种注入方式
  9. JS画几何图形之五【过圆外一点作切线】
  10. July 06th. 2018, Week 27th. Friday
  11. SpringBoot四大神器之Actuator
  12. 201771010141 周强 面向对象程序设计(Java)第12周作业
  13. POJ 1305
  14. mormot支持TCP/IP
  15. Kafka-Record(消息格式)
  16. asp.net 网页跳转的几种常用方法
  17. Json4:使用json-lib解析、生成Json
  18. 【刷题】HDU 3435 A new Graph Game
  19. Win7下VS2010不能链接问题
  20. Tasker to detect and vibrate once the ougoing call is being answered

热门文章

  1. C# 窗体内容显示不全
  2. idea短信验证
  3. jQuery Validate扩展验证方法 (zhangxiaobin)
  4. hive启动一些错误记录
  5. service network restart 报错重启失败
  6. MySQL抑制binlog日志中的BINLOG部分的方法
  7. Docx 生成word文档二
  8. alert对象相关问题
  9. java多线程三种方式
  10. LintCode_100 删除排序数组中的重复数字 ||