【发布时间】:2019-02-07 15:28:19
【问题描述】:
我有大约 5000 个链接,我需要抓取所有这些链接。所以我想知道有没有比这更好的方法。这是我的代码。
let urls = [ 5000 urls go here ];
const doms = await getDoms(urls);
// processing and storing the doms
getDoms = (urls) => {
let data = await Promise.all(urls.map(url => {
return getSiteCrawlPromise(url)
}));
return data;
}
getSiteCrawlPromise = (url) => {
return new Promise((resolve, reject) => {
let j = request.jar();
request.get({url: url, jar: j}, function(err, response, body) {
if(err)
return resolve({ body: null, jar: j, error: err});
return resolve({body: body, jar: j, error: null});
});
})
}
promise 中是否实现了一种机制,以便可以将作业分配给多个线程和进程。然后将输出作为一个整体返回? 而且我不想将网址分成更小的片段并处理这些片段
【问题讨论】:
标签: node.js request web-crawler es6-promise