我正在尝试使用cheerio将属性(“data-code”)的值推送到数组中。但是,我不断收到错误消息“allAs [i] .attr不是函数”
这是我到目前为止所拥有的
const express = require('express');
const request = require('request');
const cheerio = require('cheerio');
const app = express();
app.get('/scrape', (req, res) => {
const url = 'http://store.emart.com/branch/list.do?id=1702';
request(url, (err, response, body) => {
if(!err) {
var idList = [];
console.log(typeof(idList));
var $ = cheerio.load(body);
var allAs = $("a").filter("[data-code]");
console.log(allAs[0].val);
for(var i = 0; i < allAs.length; i++){
//console.log(allAs[i]);
idList.push(allAs[i].attr("[data-code]"));
}
console.log();
res.send(body);
} else {
console.log("problems yo");
}
});
});
app.listen(3000, () => {
console.log("Server is up and running!!!");
});
应该有330个结果被推入idList。
答案 0 :(得分:1)
根据您的代码,更改此内容:
idList.push(allAs[i].attr("[data-code]"));
...到......
idList.push(allAs[i].attribs['data-code']);
-
*自从我上次使用cheerio以来已经有一段时间了,所以我不确定这是不是它应该是怎么回事,或者它是一个错误。