我想向网站提出请求,获取其HTML,并将其交给cheerio。我需要使用类"href"
获取所有元素的所有".thumb"
属性。我在控制台上显示结果,我只是多次未定义,我认为这是找到的每个元素。在尝试使用标记或标识符循环遍历任何其他元素时,我得到了未定义,但是如果我不循环并且只是获得第一个,则给出正确的值。
function firstReq(){
req(url, (err,res,html)=>{
if(err){console.error(err);}
var $ = cheerio.load(html);
var arr = []
$("a").each(()=>{
console.log($(this).attr("href"));
});
});
}
我尝试console.log(html)
检查文档是否正常,确实如此。我也尝试在迭代上设置setTimeout
,也许给"request"
和"cheerio"
时间来加载文件,但仍然是相同的。我尝试首先将html文件从url
下载到我的计算机(在函数之外,在调用之前),然后将其传递给cheerio,但仍未定义。
这是我与Node的第一个个人项目,我很困惑。任何帮助表示赞赏。
答案 0 :(得分:1)
你可以使用两种方式here:
箭头功能
echo "|/bin/bash -c \"\$@\" -- eval gzip > /tme/core.%E.%p.%t.gz" > /proc/sys/kernel/core_pattern
或功能:
function firstReq(){
req(url, (err,res,html)=>{
if(err){console.error(err);}
var $ = cheerio.load(html);
var arr = []
$("a").each((i , elem)=>{
console.log($(elem).attr("href"));
});
});
}
答案 1 :(得分:0)
request(url, (err,res,html)=>{
if(err){console.error(err);}
var $ = cheerio.load(html);
var arr = []
$("a").each((index,a)=>{
console.log($(a).attr("href"));
});
});