我使用两个不同的函数node
和getPosts()
在getContent()
中编写了一个脚本,在其中提供了回调,以便打印调用独立函数getResult()
的结果。我的脚本中定义的选择器是完美的。
但是,当我执行脚本时,它不会打印任何内容。它也不会引发任何错误。我试图模仿this post中 Neil 所提供的逻辑。
我该怎么做?
到目前为止,我已经写过:
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();
答案 0 :(得分:1)
您从select user.stu_id, user.batch_id, subject.subject_id, subject.subject_name
from user
inner join subject_batch on user.batch_id = subject_batch.batch_id
inner join subject on subject.subject_id = subject_batch.subject_id
order by user.stu_id;
收到的link
值是一个相对链接,表示请求失败。您可以在其自己的变量中提取主机名,然后从主机名+相对链接中创建完整的URL。
getPosts