初学node,爬一下优酷的视频,写的比较粗糙
var http = require('http');
var cheerio = require("cheerio");
var url = "http://www.youku.com/";
var all = [];
http.get(url,function(res){
var html = "";
res.on("data" , function (chunk) {
html +=chunk;
});
res.on("end" , function(){
fenxi(html);
all.forEach(function(e){
console.log(" 【 "+e.title+" "+e.link+" 】"+"\n");
});
console.log(all.length);
}).on("error",function(){
console.log("获取错误");
});
});
//利用 cheerio 分析HTML文件。下面边看文档变写。。。毕竟菜
function fenxi(html){
//首先你需要加载HTML。这一步对jQuery来说是必须的,since jQuery operates on the one, baked-in DOM。通过Cheerio,我们需要把HTML document 传进去。
var $ = cheerio.load(html);
//分析源码发现每一块视频包在class为yk-row的div里
var $bigs = $(".yk-row");
//console.log($bigs.length);
//遍历每一个大块,得到小子块
$bigs.each(function(i){
var $big= $(this);
//开始寻找大块里的中块
var $middles = $big.children();
//console.log("middle: "+$middles.length);
//遍历每一个中块,在中块里找到每一个视频的a元素
}) $middles.each(function (j) {
var $middle = $(this);
var $views = $middle.children();
//console.log($views.length);
$views.each(function (k) {
var $view = $(this);
var title = $view.find("a").attr("title");
var href = $view.find("a").attr("href");
var each ={
title : title,
link : href
};
all.push(each);
})
})
}
轮播图部分的还爬不出来。。。