我正在 Node 中构建一个爬虫,它使用request和cheerio来加载页面并解析它们。
重要的是我只在请求和 Cheerio 完成页面加载之后才进行回调。我正在尝试使用async
扩展,但我不完全确定在哪里放置回调。
request(url, function (err, resp, body) {
var $;
if (err) {
console.log("Error!: " + err + " using " + url);
} else {
async.series([
function (callback) {
$ = cheerio.load(body);
callback();
},
function (callback) {
// do stuff with the `$` content here
}
]);
}
});
我一直在阅读cheerio documentation
并且找不到任何关于何时加载内容的回调示例。
最好的方法是什么?当我在脚本中抛出 50 个 URL 时,它在cheerio 正确加载内容之前就开始过早地移动,我试图通过异步加载来遏制任何错误。
一般来说,我对异步编程和回调完全陌生,所以如果我在这里遗漏了一些简单的东西,请告诉我。