Я написал скрипт в node
, используя две разные функции getPosts()
и getContent()
, обеспечивающие обратный вызов внутри них, чтобы напечатать результат вызова отдельной функции getResult()
. Селекторы, определенные в моем скрипте, безупречны.
Однако, когда я выполняю свой скрипт, он ничего не печатает. Это тоже не выдает никакой ошибки. Я пытался имитировать логику, представленную Нейлом в этом посте .
Как я могу сделать это?
Я уже написал:
var request = require('request');
var cheerio = require('cheerio');
const url = 'https://stackoverflow.com/questions/tagged/web-scraping';
function getPosts(callback){
request(url, function (error,response, html) {
if (!error && response.statusCode == 200){
var $ = cheerio.load(html);
$('.summary .question-hyperlink').each(function(){
var items = $(this).text();
var links = $(this).attr("href");
callback(items,links);
});
}
});
}
function getContent(item,link,callback){
request(link, function (error,response, html) {
if (!error && response.statusCode == 200){
var $ = cheerio.load(html);
var proLink = $('.user-details > a').eq(0).attr("href");
callback({item,link,proLink});
}
});
}
function getResult() {
getPosts(function(item,link) {
getContent(item,link,function(output){
console.log(output);
});
});
}
getResult();