Cheerio 不会解析数据
Cheerio Will Not Parse Data
出于某种原因,我的代码无法正常工作。我已经尝试了所有方法并确保 cheerio 确实在加载。无论出于何种原因,foreach 循环都没有执行。
jQuery 本身可以工作,并且已经在浏览器中进行了测试。不会抛出任何错误。我得到的只是一个空 urls 数组的响应。
例如:[]
const getHTML = (url) => {
var promise = new Promise((resolve, reject) => {
request(url, (err, res, html) => {
(err) ? reject(err) : resolve(html)
})
})
return promise;
}
const grabPages = (html) => {
var promise = new Promise((resolve, reject) => {
var urls = []
var $ = cheerio.load(html)
$(".tdname a").each(function (i, el) {
var $el = $(el)
console.log($el)
urls.push($el.href)
});
resolve(urls);
})
return promise;
}
const exec = () => {
return getHTML('http://fakesite.net')
.then(grabPages).then(res => console.log(res))
}
module.exports = exec;
好吧,我现在觉得自己很蠢。在期待 cheerio return 任何结果之前,请确保您要使用的 dom 元素已实际加载到页面上。
我试图操作的元素是通过 AJAX 加载的,因此,cheerio 没有找到该元素。
这没有抛出任何错误,所以在像我一样浪费你生命中的时间之前请小心。
出于某种原因,我的代码无法正常工作。我已经尝试了所有方法并确保 cheerio 确实在加载。无论出于何种原因,foreach 循环都没有执行。
jQuery 本身可以工作,并且已经在浏览器中进行了测试。不会抛出任何错误。我得到的只是一个空 urls 数组的响应。
例如:[]
const getHTML = (url) => {
var promise = new Promise((resolve, reject) => {
request(url, (err, res, html) => {
(err) ? reject(err) : resolve(html)
})
})
return promise;
}
const grabPages = (html) => {
var promise = new Promise((resolve, reject) => {
var urls = []
var $ = cheerio.load(html)
$(".tdname a").each(function (i, el) {
var $el = $(el)
console.log($el)
urls.push($el.href)
});
resolve(urls);
})
return promise;
}
const exec = () => {
return getHTML('http://fakesite.net')
.then(grabPages).then(res => console.log(res))
}
module.exports = exec;
好吧,我现在觉得自己很蠢。在期待 cheerio return 任何结果之前,请确保您要使用的 dom 元素已实际加载到页面上。
我试图操作的元素是通过 AJAX 加载的,因此,cheerio 没有找到该元素。
这没有抛出任何错误,所以在像我一样浪费你生命中的时间之前请小心。