在关注Node JS中的Web抓取教程时,我在终端中运行此脚本时遇到了这个问题:
Object #<Object> has no method 'attr'
这是我正在使用的脚本:
var request = require('request'),
cheerio = require('cheerio'),
urls = [];
request('http://www.reddit.com', function (err, resp, body) {
if (!err && resp.statusCode == 200) {
var $ = cheerio.load(body);
$('a.title', '#siteTable').each(function() {
var url = this.attr('href');
urls.push(url)
});
console.log(urls);
}
});
有关如何修复此脚本的任何想法,以便它不会抛出错误?任何帮助都会非常感激!
答案 0 :(得分:3)
默认情况下,范围对象this
不是jQuery对象。
var url = this.getAttribute("href");
// or
var url = $(this).attr("href");