这是我的代码的一部分:
request(main_url, function(error, response, html) { // two parameters: an URL and a callback
if(!error) {
var $ = cheerio.load(html);
console.log("begin");
$('.test').filter(function() {
console.log("in");
});
console.log("end");
}
});
控制台显示: 的开始 端
这真的很奇怪,我做了一个测试来检查其类的对象是否存在测试,结果是它存在。
所以我不知道为什么它将第4行直接传递到第8行?
答案 0 :(得分:0)
问题在于request
以二进制Buffer
的形式返回响应,而不是解码的String
。
您需要首先将转换 html
转换为字符串,然后再使用toString
将其传递给cheerio:
var $ = cheerio.load(html.toString());