通过uid对b站用户等级进行划分脚本

Posted Love丶伊卡洛斯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过uid对b站用户等级进行划分脚本相关的知识,希望对你有一定的参考价值。

前言

开发语言:JS
使用说明:
注意:这个API需要在b站的网站下执行,跨域会被拒绝(很重要哦,另外请求太多可能会被禁请求,需要注意)
1、来到b站页面,按F12打开开发者工具
2、点击“控制台”或者叫 “console”
3、贴入代码,修改uids,填入用户uid的数组,例如:(注意是英文逗号)

var uids = [
1,2,3,4,5
];

4、回车运行即可,等到打印完成后,会输出人数分布。
5、输入 show_level(你想看的对应等级的数字); 然后回车,查看对应等级用户信息。例如:

效果图

源码

// 此处填入uid的数组,用,分隔
var uids = [

];
var infos = [];

var url = "https://api.bilibili.com/x/space/acc/info?token=&platform=web&jsonp=jsonp&mid=";

console.log("开始运行");

for(let i = 0; i < uids.length; i++) 
	setTimeout(() => 
        get_baseinfo(url + uids[i], i);
    , 100 * (i + 1));


function get_baseinfo(url, index) 
    var xmlhttp;
    if(window.XMLHttpRequest)
    
        //code for IE7+,Firefox,Chrome,Opera,Safari
        xmlhttp = new XMLHttpRequest();
    
    else
    
        //code for IE6,IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    

    xmlhttp.onreadystatechange = function()
    
        if(xmlhttp.readyState == 4)
        
            if(xmlhttp.status == 200)
            
                var str = xmlhttp.responseText;
                if(str.length == 0)
                
                    return "";
                

                //console.log(str);

                var json = JSON.parse(str);
                // console.log(json);

                var info = "uid": json["data"]["mid"], "name": json["data"]["name"], "level": json["data"]["level"];
                infos.push(info);

                if(uids.length - 1 == index) 
                    console.log("数据获取完毕,如果相应获取单个level的用户信息,请输入 show_level(你想看的对应等级的数字); 然后回车喵");
                    console.log(infos);
                    show_num();
                
            
            else
            
                //alert(xmlhttp.status);
            

        
        else
        
            //alert(xmlhttp.readyState);
        
    
    
    xmlhttp.open("GET", url, true);
    xmlhttp.send();


function show_num() 
    var level = [0, 0, 0, 0, 0, 0, 0];

    for(var i = 0; i < infos.length; i++) 
        if(infos[i]["level"] < 1) level[0] += 1;
        else if(infos[i]["level"] < 2) level[1] += 1;
        else if(infos[i]["level"] < 3) level[2] += 1;
        else if(infos[i]["level"] < 4) level[3] += 1;
        else if(infos[i]["level"] < 5) level[4] += 1;
        else if(infos[i]["level"] < 6) level[5] += 1;
        else level[6] += 1;
    

    console.log("用户等级分布统计 0:" + level[0] + " ,1:" + level[1] + " ,2:" + level[2] + " ,3:" + level[3] + " ,4:" + level[4] + " ,5:" + level[5] + " ,6:" + level[6]);


function show_level(level) 
    for(var i = 0; i < infos.length; i++) 
        if(infos[i]["level"] == level) console.log("uid:" + infos[i]["uid"], " name:" + infos[i]["name"]);
    

以上是关于通过uid对b站用户等级进行划分脚本的主要内容,如果未能解决你的问题,请参考以下文章

通过uid对b站用户等级进行划分脚本

xss(跨站脚本攻击)

xss(跨站脚本攻击)

bug分类及等级判定条件

XSS跨站脚本攻击

XSS跨站脚本攻击