百度云js爬虫,自动收藏好友分享

上一篇 / 下一篇  2015-03-01 11:21:31 / 个人分类:js

可以用来爬取百度云中你感兴趣的分享内容。如:收集PDF文档,收集视频种子

1.打开http://yun.baidu.com/,登录。
2.按F12打开控制台。
修改以下js的toPath和filters 变量配置
然后粘贴到控制台执行。
3.控制台执行 testshare('1059699661',1);
    其中1059699661是爬虫的起始用户id(用户云主页url中的uk值),第2个参数是爬取“朋友圈”的层级。

$.ajaxSetup({
        async:false,
    timeout: 20000,
    success: function (data) { console.log('ok:'+this.url) ;},
    error: function (xhr, status, e) {console.log('failed:'+this.url);}
  });

//存放目录,在你的pan.baidu.com中已存在目录
var toPath="/TEMP";

//文件筛选正则
var filters = /\.pdf$/;


/**
*  给定一个用户,返回他好友的所有分享
*  nop_uk    用户的uk值
*  nop_level 指定遍历层级
*
*  window.nops   保存好友圈的uk数组
*  window.shares 保存所有分享
*/
function getFriendShare(nop_uk,nop_level){
    if(nop_level < 1) return;
    $.get('http://yun.baidu.com/share/home?uk='+nop_uk+'&view=share',function(result){
        var nop_bdstoken=result.match(/FileUtils.bdstoken="(.*?)"/)[1];
        var nop_sign=result.match(/FileUtils.sign="(.*?)"/)[1];

        //console.log('nop_uk:'+nop_uk + ' nop_sign:' + nop_sign);

        //$.getJSON('http://yun.baidu.com/share/count?uk='+nop_uk+'&sign='+nop_sign+'&timestamp='+$.now()+'&channel=chunlei&clienttype=0&web=1&bdstoken='+nop_bdstoken,function(d){
        $.getJSON('http://yun.baidu.com/pcloud/user/getinfo?bdstoken='+nop_bdstoken+'&query_uk='+nop_uk+'&t=1423333402405&channel=chunlei&clienttype=0&web=1',function(d){
       
            for(var start=0;start<d.user_info.fans_count;start+=24){
                //获取关注列表
                $.getJSON('http://yun.baidu.com/pcloud/friend/getfanslist?query_uk='+nop_uk+'&limit=24&start='+start+'&bdstoken='+nop_bdstoken+'&channel=chunlei&clienttype=0&web=1',function(d){
                    for(var i=0;i<d.fans_list.length;i++){
                        var fans_uk = d.fans_list[i].fans_uk;
                        console.log(
                            'nop_level:'+nop_level+
                            ' uk:'+fans_uk+
                            ' 用户名:'+d.fans_list[i].fans_uname +
                            ' 关注数:'+d.fans_list[i].fans_count +
                            ' 粉丝数:'+d.fans_list[i].fans_count +
                            ' 分享数:'+d.fans_list[i].pubshare_count
                            );

                        var dogoing = false;
                        if(typeof window.nops == 'undefined'){
                            window.nops = [];
                            dogoing = true;
                        }else{
                            if(typeof window.nops[d.fans_list[i].fans_uk] == 'undefined'){
                                dogoing = true;
                            }
                        }
                        window.nops[d.fans_list[i].fans_uk] = true;
                        if(d.fans_list[i].pubshare_count>0){
                            $.getJSON('http://yun.baidu.com/pcloud/feed/getsharelist?t=' + $.now() + '&category=0&auth_type=1&request_location=share_home&start=0&limit=60&query_uk=' + fans_uk + '&channel=chunlei&clienttype=0&web=1&bdstoken=' + nop_bdstoken,function(d){
                                for(var j=0;j<d.records.length;j++){
                                    var shareid = d.records[j].shareid;
                                    console.log(
                                        'shareid:' + shareid +
                                        '分享名:' + d.records[j].title +
                                        '短连接:' + d.records[j].shorturl
                                    );

                                    if(typeof shareid !== "undefined"){
                                        if(typeof window.shares == 'undefined'){
                                            window.shares = [];
                                        }else{
                                            window.shares[shareid] = d.records[j].title;
                                        }
                                        for(var k=0;k<d.records[j].filelist.length;k++){
                                            var subshare = d.records[j].filelist[k];
                                            if(subshare.isdir){
                                                //遍历目录
                                            }else{
                                                if(filters.test(subshare.server_filename)){
                                                    console.log(
                                                        'PDF:'+subshare.server_filename
                                                    );
                                                    $.post('http://yun.baidu.com/share/transfer?shareid='+shareid+'&from='+ fans_uk +'&async=1&bdstoken='+nop_bdstoken+'&channel=chunlei&clienttype=0&web=1&app_id=250528',{path:toPath,filelist:'["'+decodeURIComponent(subshare.path)+'"]'},function(d){
                                                            //&ondup=newcopy
                                                            d=1;
                                                    });
                                                }
                                            }
                                        }
                                    }
                                }
                            });
                        }

                        if(dogoing){
                            getFriendShare(d.fans_list[i].fans_uk,nop_level-1);
                        }
                    }
                });
            }
        });
    });
}

function testshare(u,c){
    getFriendShare(u,c);
    console.log('end of script;');
}

//$('body').append('<script. src="http://localhost:8002/baidu.share.js?t=1"></script>')
//setTimeout(function(){
//    testshare('1059699661',1);
//},1500);


TAG: js JS 爬虫 百度云 分享

 

评分:0

我来说两句

我的栏目

日历

« 2024-03-28  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 8158
  • 日志数: 6
  • 建立时间: 2011-12-18
  • 更新时间: 2015-03-01

RSS订阅

Open Toolbar