以下的測試是在chrome上進行的,以火影忍者為例与学。
該方法可行的根本原因只有一個:js中定義了全局變量DATA嘉抓,代碼本身并沒有什么技術(shù)含量。
操作方法:拷貝代碼塊中的js抑片,輸入指定網(wǎng)站,在chrome中進入開發(fā)者模式(F12 or Ctrl+shift+i),進去Console截汪,將代碼全部拷貝過去植捎,按下回車就可以了,然后你會看到瀏覽抽風(fēng)邊開邊關(guān)焰枢,不要驚慌,靜靜的等待文件被下載完暑椰。文件中為圖片url地址荐绝。
注意事項:1,官網(wǎng)進入的url與示例中的有差別。后綴略有區(qū)別低滩,沒具體試過官網(wǎng)展示中的url是不是也是強規(guī)則,感覺差別不大戳鹅。實在不行你可以猜中間的域名昏兆,如火影忍者為naruto妇穴,海賊王為onepiece隶债。2,輸入的網(wǎng)站一定要是同域名下的,否則會出現(xiàn)跨域問題瞒滴。
var i=0;
var windowOne;
var urlArray=[];
//入口域名很重要赞警,初始可以為http://ac.qq.com/naruto/v/cid/1
var orginUrl="http://ac.qq.com/naruto/v/cid/";
//獲取當(dāng)前總集數(shù)
var lastUrl= document.querySelector("#catalogueList li:last-child a").href;
var total=parseInt(lastUrl.substring(lastUrl.lastIndexOf("/")+1))+1;
function getUrl() {
i++;
if(i<total){
windowOne=window.open(orginUrl+i);
setTimeout(function(){
var c=new Object();
c=windowOne;
let flag=true;
try{
if(windowOne.DATA){};
}catch(e){
console.log(i+"=====");
flag=false;
}
if(flag){
for (let picture of windowOne.DATA.picture){
urlArray.push(picture.url);
}
urlArray.push("|||")
console.log(urlArray.length+"=========")
if(i%50==0||i==total-1){ //每50集的url放一個txt
doSave(urlArray, "text/latex", i+"naruto.txt");
urlArray=[];
}
}
windowOne.close();
getUrl();
},300);
}
}
getUrl();
function doSave(value, type, name) {
var blob;
if (typeof window.Blob == "function") {
blob = new Blob([value], {type: type});
} else {
var BlobBuilder = window.BlobBuilder || window.MozBlobBuilder || window.WebKitBlobBuilder || window.MSBlobBuilder;
var bb = new BlobBuilder();
bb.append(value);
blob = bb.getBlob(type);
}
var URL = window.URL || window.webkitURL;
var bloburl = URL.createObjectURL(blob);
var anchor = document.createElement("a");
if ('download' in anchor) {
anchor.style.visibility = "hidden";
anchor.href = bloburl;
anchor.download = name;
document.body.appendChild(anchor);
var evt = document.createEvent("MouseEvents");
evt.initEvent("click", true, true);
anchor.dispatchEvent(evt);
document.body.removeChild(anchor);
} else if (navigator.msSaveBlob) {
navigator.msSaveBlob(blob, name);
} else {
location.href = bloburl;
}
} ;