我正在尝试将URL变量中页面上li标签中包含的URL归零。它应该很简单,但我不能让它工作。我得到了正确数量的元素,但它们都是空白的。 text()返回''& html()返回null。我在这里做错了什么?
const cheerio = require('cheerio');
const request = require('request');
function getHistory(){
let url = 'http://coinmarketcap.com/historical/';
request(url,(error,response,html)=>{
var $ = cheerio.load(html);
$('li.text-center').each((i,element)=>{
var omg = $(this).html();
console.log(omg);
});
});
}
答案 0 :(得分:4)
与实际的jQuery不同,cheerio显然没有设置this
的值。如果你改变了这个:
var omg = $(this).html();
到此:
var omg = $(element).html();
您将看到您期望的HTML。
如果您真正想要的是href
,那么您应该使用选择器定位<a>
标记,并从中获取实际的href
属性。你可以这样做:
function getHistory(){
let url = 'http://coinmarketcap.com/historical/';
request(url,(error,response,html)=>{
let $ = cheerio.load(html);
$('li.text-center a').each((i,element)=>{
let omg = $(element).attr('href');
console.log(omg);
});
});
}