用node.js爬一下优酷

初学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);
            })

    })
}
轮播图部分的还爬不出来。。。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值