nICEnnnnnnnLee / BilibiliDown

(GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳
http://nICEnnnnnnnLee.github.io/blog/2019/03/02/java-spider-bilibili-down-index/
Apache License 2.0
2.57k stars 256 forks source link

大佬你好,可以增加一个在投稿下的图文类目的批量下载吗 #223

Closed Jiangdonganxia closed 5 days ago

Jiangdonganxia commented 1 week ago

链接是这样的https://space.bilibili.com/UID/article

nICEnnnnnnnLee commented 1 week ago
if(!bili_result){
    function __copy(text) {
      let copyInput = document.createElement("textarea");
      document.body.appendChild(copyInput);
      copyInput.value = text;
      copyInput.select();
      document.execCommand("Copy");
      copyInput.remove();
    }

    function __addRecord(record){
        if(!bili_result.includes(record)){
            bili_result.push(record);
            console.log(record);
        }
    }

    function __observe(targetNode){
        const observer = new MutationObserver(function(mutationsList, observer) {
            for(let mutation of mutationsList) {
                mutation.addedNodes.forEach(n => {
                    const node = n.querySelector(".item > .article-card > a:first-child")
                    const href = node.href;
                    const title = node.querySelector(".article-card-title").innerText;
                    const record = `${href} ${title}`;
                    __addRecord(record);
                })

            }
        });

        const config = { attributes: false, childList: true, subtree: false };
        observer.observe(targetNode, config);
    }
    // 所有记录保存在 bili_result 
    var bili_result = [];
    // 保存当前页面的记录
    document.querySelector(".container").querySelectorAll(".item > .article-card > a:first-child").forEach(node => {
        const href = node.href;
        const title = node.querySelector(".article-card-title").innerText;
        const record = `${href} ${title}`;
        __addRecord(record);
    });
    // 保存之后新增的记录
    var bili_target = document.querySelector(".container");
    __observe(bili_target);
}

var output = bili_result.join('\n');
console.log(output);
__copy(output);
alert(output);

新增书签如下,运行的js内容为上面的压缩。

javascript:if (!bili_result) {function __copy(text) {let copyInput = document.createElement("textarea");document.body.appendChild(copyInput);copyInput.value = text;copyInput.select();document.execCommand("Copy");copyInput.remove();}function __addRecord(record) {if (!bili_result.includes(record)) {bili_result.push(record);console.log(record);}}function __observe(targetNode) {const observer = new MutationObserver(function (mutationsList, observer) {for (let mutation of mutationsList) {mutation.addedNodes.forEach((n) => {const node = n.querySelector(".item > .article-card > a:first-child");const href = node.href;const title = node.querySelector(".article-card-title").innerText;const record = `${href} ${title}`;__addRecord(record);});}});const config = { attributes: false, childList: true, subtree: false };observer.observe(targetNode, config);}var bili_result = [];document.querySelector(".container").querySelectorAll(".item > .article-card > a:first-child").forEach((node) => {const href = node.href;const title = node.querySelector(".article-card-title").innerText;const record = `${href} ${title}`;__addRecord(record);});var bili_target = document.querySelector(".container");__observe(bili_target);}var output = bili_result.join("\n");console.log(output);__copy(output);alert(output);

打开页面https://space.bilibili.com/UID/article,点击一下书签,会有弹窗,并自动复制了弹窗的内容; 如果内容多到有分页的话,一直下拉,直到你想要停的地方为止,点击一下书签,会有弹窗,并自动复制了弹窗的内容

Jiangdonganxia commented 1 week ago
  • 程序支持的图文链接类型已经够多了,不会再新增了。
  • 你可以参照以下办法较为简单地得到相关链接:
if(!bili_result){
    function __copy(text) {
      let copyInput = document.createElement("textarea");
      document.body.appendChild(copyInput);
      copyInput.value = text;
      copyInput.select();
      document.execCommand("Copy");
      copyInput.remove();
    }

    function __addRecord(record){
        if(!bili_result.includes(record)){
            bili_result.push(record);
            console.log(record);
        }
    }

    function __observe(targetNode){
        const observer = new MutationObserver(function(mutationsList, observer) {
            for(let mutation of mutationsList) {
                mutation.addedNodes.forEach(n => {
                    const node = n.querySelector(".item > .article-card > a:first-child")
                    const href = node.href;
                    const title = node.querySelector(".article-card-title").innerText;
                    const record = `${href} ${title}`;
                    __addRecord(record);
                })

            }
        });

        const config = { attributes: false, childList: true, subtree: false };
        observer.observe(targetNode, config);
    }
    // 所有记录保存在 bili_result 
    var bili_result = [];
    // 保存当前页面的记录
    document.querySelector(".container").querySelectorAll(".item > .article-card > a:first-child").forEach(node => {
        const href = node.href;
        const title = node.querySelector(".article-card-title").innerText;
        const record = `${href} ${title}`;
        __addRecord(record);
    });
    // 保存之后新增的记录
    var bili_target = document.querySelector(".container");
    __observe(bili_target);
}

var output = bili_result.join('\n');
console.log(output);
__copy(output);
alert(output);

新增书签如下,运行的js内容为上面的压缩。

javascript:if (!bili_result) {function __copy(text) {let copyInput = document.createElement("textarea");document.body.appendChild(copyInput);copyInput.value = text;copyInput.select();document.execCommand("Copy");copyInput.remove();}function __addRecord(record) {if (!bili_result.includes(record)) {bili_result.push(record);console.log(record);}}function __observe(targetNode) {const observer = new MutationObserver(function (mutationsList, observer) {for (let mutation of mutationsList) {mutation.addedNodes.forEach((n) => {const node = n.querySelector(".item > .article-card > a:first-child");const href = node.href;const title = node.querySelector(".article-card-title").innerText;const record = `${href} ${title}`;__addRecord(record);});}});const config = { attributes: false, childList: true, subtree: false };observer.observe(targetNode, config);}var bili_result = [];document.querySelector(".container").querySelectorAll(".item > .article-card > a:first-child").forEach((node) => {const href = node.href;const title = node.querySelector(".article-card-title").innerText;const record = `${href} ${title}`;__addRecord(record);});var bili_target = document.querySelector(".container");__observe(bili_target);}var output = bili_result.join("\n");console.log(output);__copy(output);alert(output);

打开页面https://space.bilibili.com/UID/article,点击一下书签,会有弹窗,并自动复制了弹窗的内容; 如果内容多到有分页的话,一直下拉,直到你想要停的地方为止,点击一下书签,会有弹窗,并自动复制了弹窗的内容

感谢大佬