无法在新功能中打印某些项目
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法在新功能中打印某些项目相关的知识,希望对你有一定的参考价值。
我在node
创建了一个脚本,使用request
和cheerio
从它的登陆页面获取不同帖子的不同titles
和links
然后将那些titles
和links
传递到另一个函数中,这样我就可以从它的内页中提取那些title
的links
与用户的个人资料链接创建了我定义为proLink
的帖子。
如何使用回调从另一个函数中打印那些
titles
,links
和proLink
?
我到目前为止写的:
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");
return callback(items,links);
});
}
});
}
getposts((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");
return callback(item,link,proLink);
}
});
});
再一次:我希望使用回调在另一个函数中打印三个item
,link
,proLink
。
答案
也许你可以试试这个:
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');
return callback(items, links);
});
}
});
}
function fetch(callback) {
getposts((item, link) => {
request(`https://stackoverflow.com${link}`, function(
error,
response,
html
) {
if (error) {
console.log(link, error.message);
return;
}
if (!error && response.statusCode == 200) {
var $ = cheerio.load(html);
var proLink = $('.user-details > a')
.eq(0)
.attr('href');
return callback(item, link, proLink);
}
});
});
}
fetch((item, link, proLink) => console.log({ item, link, proLink }));
以上是关于无法在新功能中打印某些项目的主要内容,如果未能解决你的问题,请参考以下文章
我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情