您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
便捷地从b站评论区下载图片
当前为
// ==UserScript== // @name GetImageFrombilibiliComments // @namespace https://ouyu69.cn/ // @version 1.0.0 // @description 便捷地从b站评论区下载图片 // @author ouyu69 // @include *://www.bilibili.com/video/* // @include *bilibili.com/video/* // @license MIT // ==/UserScript== (function() { 'use strict'; setInterval(getImageElements,5000) ; })(); //(function(){})() 表示该函数立即执行 function getImageElements() {//寻找目标函数 const biliComments = document.querySelector("bili-comments"); if (biliComments) { // console.log("biliComments OK"); const shadowRoot1 = biliComments.shadowRoot; if (shadowRoot1) { const biliCommentThreadRenderers = shadowRoot1.querySelectorAll("bili-comment-thread-renderer"); Array.from(biliCommentThreadRenderers).forEach(biliCommentThreadRenderer => { const shadowRoot2 = biliCommentThreadRenderer.shadowRoot; if (shadowRoot2) { const comments = shadowRoot2.querySelectorAll("#comment"); Array.from(comments).forEach(comment => { const shadowRoot3 = comment.shadowRoot; if (shadowRoot3) { const pics = shadowRoot3.querySelectorAll("#pic > bili-comment-pictures-renderer"); Array.from(pics).forEach(pic => { const shadowRoot4 = pic.shadowRoot; if (shadowRoot4) { const imgs = shadowRoot4.querySelectorAll("#content > img"); // console.log("All OK"); Array.from(imgs).forEach(img => { // console.log("找到了目标元素" + img.getAttribute("src")); const existButton = img.nextElementSibling; if(!existButton || !existButton.classList.contains('download-button-class'))addDownloadButton(img); }); } }); } }); } }); } }else{ // console.log("biliComments cant find") ; } } function addDownloadButton(img) { const button = document.createElement("button"); button.classList.add('download-button-class'); // 添加一个类以便后续检查 button.textContent = "download"; button.style.backgroundColor = "skyblue" button.style.color= "white" ; button.style.height= "20px" ; button.style.borderRadius= "10px" ; button.style.marginLeft = "10px"; button.onclick = () => { const url = "https:" + img.getAttribute('src').split('@')[0]; const fileName = url.split("//")[1].split("/")[3] ; console.log(url) ; console.log(fileName) ; downloadFile(url,fileName) ; }; img.parentNode.insertBefore(button, img.nextSibling); } function downloadFile(url, fileName) { fetch(url) .then(response => response.blob()) .then(blob => { const link = document.createElement('a'); link.href = URL.createObjectURL(blob); link.download = fileName || 'download'; document.body.appendChild(link); link.click(); document.body.removeChild(link); URL.revokeObjectURL(link.href); }) .catch(console.error); }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址