我在阵列中有大约10K的URL。在其他时间,这可能是100K。我需要以编程方式访问它们并获取响应并将其打印出来或使用它做一些事情。为了防止所有URL所属的服务器阻塞,我想按顺序访问它们。我知道有这样的异步模块。我的问题是:异步是唯一的方法吗?异步是否能够扩展到更多的URL?
答案 0 :(得分:0)
使用crawler
等网络抓取工具模块(或在node-modules.com或npmjs.com上搜索抓取工具关键字)。
var Crawler = require("crawler");
var url = require('url');
var c = new Crawler({
maxConnections : 10,
// This will be called for each crawled page
callback : function (error, result, $) {
// $ is Cheerio by default
//a lean implementation of core jQuery designed specifically for the server
$('a').each(function(index, a) {
var toQueueUrl = $(a).attr('href');
c.queue(toQueueUrl);
});
}
});
// Queue a list of URLs
c.queue(['http://jamendo.com/','http://tedxparis.com']);