这是我的网络爬虫与 node.js
使用 cheerio
库:
var request = require('request');
var cheerio = require('cheerio');
var fs = require('fs');
var urls = [];
request('http://www.reddit.com', function(err, resp, body){
if(!err && resp.statusCode == 200){
var $ = cheerio.load(body);
$('a.title may-blank').each(function(){
var url = this.attr('href');
urls.push(url);
});
console.log(urls);
}
});
但是当我运行它时,我得到以下输出:
[]
而不是数组中的 25 个链接。
我做错了什么?
我该如何解决这个问题?
最佳答案
我猜 may-blank
是一个类,所以你需要在它前面有一个 .
:
$('a.title .may-blank').each(...
// Here ---^
...虽然目前,a.title .may-blank
与我的 reddit 首页上的任何元素都不匹配;没有 .may-blank
元素是 a.title
的后代。
如果您想要 a
元素同时具有 title
类 和 类 may-blank
,删除.may-blank
之前的空格;对我来说,目前有 36 个:
$('a.title.may-blank').each(...
// ^-- no space
或者只是 .may-blank
匹配 167。
关于javascript - 我的 Node.js 网络爬虫没有显示预期的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25485762/