【发布时间】:2018-10-19 19:22:26
【问题描述】:
我在node.js 中编写了一个非常小的脚本,使用request 和cheerio 来解析连接到links 的titles,我已经从它的着陆页上抓取了它。
问题是我不知道如何将链接(从第一个函数填充)传递给第二个函数以便从那里获取标题。我对node.js 很陌生,所以不知道如何从第一个函数返回结果并将它们传递给后一个函数。
我遇到的错误:
for (const link of links) {
^
ReferenceError: links is not defined
这是完整的脚本:
var request = require('request');
var cheerio = require('cheerio');
const url = 'https://news.ycombinator.com';
request(url, function (error, response, html) {
if (!error && response.statusCode == 200) {
var $ = cheerio.load(html);
$('.title .storylink').each(function(){
var links = $(this).attr("href");
});
}
});
for (const link of links) {
(function(url) {
request(url, function (error, response, html) {
if (!error && response.statusCode == 200) {
var $ = cheerio.load(html);
var title = $('title').eq(0).text();
console.log(title);
}
});
})(link);
}
顺便说一句,脚本中使用的选择器完美无缺。我只需要知道将结果从一个函数传递到另一个函数。
【问题讨论】:
标签: javascript node.js web-scraping request cheerio