【发布时间】:2014-04-24 07:54:58
【问题描述】:
有几个教程描述了如何使用 request 和 cheerio 抓取网站。在这些教程中,他们将输出发送到控制台或将带有 fs 的 DOM 流式传输到文件中,如下例所示。
request(link, function (err, resp, html) {
if (err) return console.error(err)
var $ = cheerio.load(html),
img = $('#img_wrapper').data('src');
console.log(img);
}).pipe(fs.createWriteStream('img_link.txt'));
但是如果我想在脚本执行期间处理输出怎么办?如何访问输出或将其发送回调用函数?当然,我可以加载 img_link.txt 并从那里获取信息,但这会很昂贵且没有意义。
【问题讨论】:
-
输出是
html你在请求回调中。您不需要“发回”,而是在回调内部处理它。 -
我已经尝试过这个解决方案,但是为了处理我需要在执行期间无法访问的外部变量。
-
是的,看来我明白了。请参阅下面的答案。
标签: node.js request web-scraping cheerio