可以用来爬取
百度云中你感兴趣的
分享内容。如:收集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+'×tamp='+$.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);