【发布时间】:2013-12-13 17:30:02
【问题描述】:
首先,这是我到目前为止的代码:
var http = require("http");
// Utility function that downloads a URL and invokes
// callback with the data.
function download(url, callback) {
http.get(url, function(res) {
var data = "";
res.on('data', function (chunk) {
data += chunk;
});
res.on("end", function() {
callback(data);
});
}).on("error", function() {
callback(null);
});
}
var cheerio = require("cheerio");
var url = "http://www.bloglovin.com/en/blogs/1/2/all";
var myArray = [];
var a = 0;
var getLinks = function(){download(url, function(data) {
if (data) {
// console.log(data);
var $ = cheerio.load(data);
$(".content").each(function(i, e) {
var blogName = $(e).find(".blog-name").text();
var followLink = $(e).find("a").attr("href");
var blogSite = $(e).find(".description").text();
myArray[a] = [a];
myArray[a]["blogName"] = blogName;
myArray[a]["followLink"] = "http://www.bloglovin.com"+followLink;
myArray[a]["blogSite"] = blogSite;
a++;
console.log(myArray);
});
}
});
}
getLinks();
如您所见,followLinks 连接到 followUrl,我想通过 'url' 下载,因此我将使用相同的 CSS 规则有效地抓取每个页面,将添加到对应博主的多维数组中。
我该怎么办?
【问题讨论】:
-
两次调用包含
http模块?请删除其中一个 -
这是一个粘贴错误!
标签: javascript jquery node.js scrape cheerio