첫째, 여기 내 코드입니다 : 당신이 볼 수 있듯이node.js + cheerio scrape : 다운로드 할 URL 배열을 전달 하시겠습니까? 지금까지 진행 한으로
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
가 나는 'url'
다운로드를 통과하고 싶은의 followUrl
로 연결됩니다 그래서 효과적으로, I 해당 CSS 규칙을 사용하여 각 페이지를 긁어서 해당 블로거의 다차원 배열에 추가합니다.
어떻게해야합니까? 배열 키로만 정수를 가질 수 있기 때문에 당신은 a = 0;
을 정의
두 호출 - 다른 배열로 내
parseRow
기능과 각각의 HTML 세그먼트를 밀어 배열로 각 데이터 행의 HTML을 가져, 각각의 반복을 처리하기 위해async.parallel
를 사용할 수 있습니까? 붙여 넣기 오류 인 – sachinjain024중 하나를 제거하십시오! – user3015175