使用方法

打开一个对应网址 然后在控制台执行(F12 - console - 粘贴 - 回车)下面对应的代码 , 新版edge浏览器需要先输入 “允许粘贴” 回车,先解除粘贴执行代码的限制。

剩下慢慢等 5秒钟处理一页,处理完成后,写入到原来页面 然后保存网页即可。

收藏列表

例如 https://space.bilibili.com/232495155/favlist?fid=1097406455&ftype=create

实现代码

function 获取列表 ()
{
    var result = '';
    const nodeList = document.querySelectorAll("#app > main > div.space-favlist > div.favlist-main > div.fav-list-main > div.items  a:not([class])");
    Array.from(nodeList).forEach(node => {
        //console.log(node.getAttribute('href').match(/[^?]+/)[0]); //调试用
        result += [
                    node.innerText ,
                    '<br><a href="' ,
                    node.getAttribute('href').match(/[^?]+/)[0] ,
                    '" target=_blank >',
                    node.getAttribute('href').match(/[^?]+/)[0],
                    '</a><br>'
                ].join('');
    });
    return result;
}
function 判断下一页是否存在(){
    var btns    = document.querySelectorAll('button.vui_pagenation--btn-side');  //查找上一页和下一页按钮
    var d_btns  = document.querySelectorAll('button.vui_pagenation--btn-side[disabled]'); // 查找被禁用的按钮
    
    if(btns.length === 0){  //无分页
        return '';
    }

    if(d_btns.length === 1){
        if (d_btns[0].textContent.trim() === '上一页') {
            //第一页 (因为上一页被禁用)返回下一页
            return btns[1];
        }
        if (d_btns[0].textContent.trim() === '下一页') {
            //最后一页(因为下一页被禁用)
            return '';
        }
    }
    //中间页
    return btns[1];
}
var 最终html = "";
function 启动 (){
    最终html += 获取列表();
    下一页 = 判断下一页是否存在();
    if(下一页 === '')
    {   
        document.write(最终html);
        return ;
    }else{
        下一页.click();
        setTimeout("启动()",5000);
    }
}
启动();

合集列表

例如 https://space.bilibili.com/326251695/lists/480959?type=season

function 获取列表 ()
{
    var result = '';
    const nodeList = document.querySelectorAll("#app > main > div.space-list-details > div.list-content a:not([class])");
    Array.from(nodeList).forEach(node => {
        //console.log(node.getAttribute('href').match(/[^?]+/)[0]); //调试用
        result += [
                    node.innerText ,
                    '<br><a href="' ,
                    node.getAttribute('href').match(/[^?]+/)[0] ,
                    '" target=_blank >',
                    node.getAttribute('href').match(/[^?]+/)[0],
                    '</a><br>'
                ].join('');
    });
    return result;
}
function 判断下一页是否存在(){
    var btns    = document.querySelectorAll('button.vui_pagenation--btn-side');  //查找上一页和下一页按钮
    var d_btns  = document.querySelectorAll('button.vui_pagenation--btn-side[disabled]'); // 查找被禁用的按钮
    
    if(btns.length === 0){  //无分页
        return '';
    }

    if(d_btns.length === 1){
        if (d_btns[0].textContent.trim() === '上一页') {
            //第一页 (因为上一页被禁用)返回下一页
            return btns[1];
        }
        if (d_btns[0].textContent.trim() === '下一页') {
            //最后一页(因为下一页被禁用)
            return '';
        }
    }
    //中间页
    return btns[1];
}
var 最终html = "";
function 启动 (){
    最终html += 获取列表();
    下一页 = 判断下一页是否存在();
    if(下一页 === '')
    {   
        document.write(最终html);
        return ;
    }else{
        下一页.click();
        setTimeout("启动()",5000);
    }
}
启动();

个人关注列表

例如 https://space.bilibili.com/232495155/fans/follow B站限制只能访问其他人关注列表的前5页 所以其实这个代码是导出自己关注的列表,而不能处理其他人的

function 获取列表 ()
{
    var result = '';
    const nodeList = document.querySelectorAll("a.relation-card-info__uname");
    Array.from(nodeList).forEach(node => {
        //console.log(node.getAttribute('href').match(/[^?]+/)[0]); //调试用
        result += [
                    node.innerText ,
                    '<br><a href="' ,
                    node.getAttribute('href').match(/[^?]+/)[0] ,
                    '" target=_blank >',
                    node.getAttribute('href').match(/[^?]+/)[0],
                    '</a><br>'
                ].join('');
    });
    return result;
}
function 判断下一页是否存在(){
    var btns    = document.querySelectorAll('button.vui_pagenation--btn-side');  //查找上一页和下一页按钮
    var d_btns  = document.querySelectorAll('button.vui_pagenation--btn-side[disabled]'); // 查找被禁用的按钮
    
    if(btns.length === 0){  //无分页
        return '';
    }

    if(d_btns.length === 1){
        if (d_btns[0].textContent.trim() === '上一页') {
            //第一页 (因为上一页被禁用)返回下一页
            return btns[1];
        }
        if (d_btns[0].textContent.trim() === '下一页') {
            //最后一页(因为下一页被禁用)
            return '';
        }
    }
    //中间页
    return btns[1];
}
var 最终html = "";
function 启动 (){
    最终html += 获取列表();
    下一页 = 判断下一页是否存在();
    if(下一页 === '')
    {   
        document.write(最终html);
        return ;
    }else{
        下一页.click();
        setTimeout("启动()",5000);
    }
}
启动();