徐州企業(yè)網(wǎng)站設(shè)計(jì)免費(fèi)的網(wǎng)站推廣在線(xiàn)推廣
目錄
前言
腳本編寫(xiě)
腳本
?
前言
B站的一些番劇時(shí)不時(shí)會(huì)“限時(shí)免費(fèi)”,白嫖黨最?lèi)?ài),主打一個(gè)又占到便宜的快樂(lè)。但是在番劇索引里卻沒(méi)有搜索選項(xiàng)可以直接檢索“限時(shí)免費(fèi)”的番劇,只能自己一頁(yè)一頁(yè)的翻去查看,非常麻煩。
自己找限免番劇這個(gè)流程可以概括為:翻頁(yè)-查找“限時(shí)免費(fèi)”的番劇,重復(fù)直至遍歷整個(gè)番劇索引,這個(gè)工作簡(jiǎn)單重復(fù),意味著就可以用腳本來(lái)完成。
腳本編寫(xiě)
打開(kāi)B站,進(jìn)入到索引檢索頁(yè)面
番劇索引 - 嗶哩嗶哩 (゜-゜)つロ 干杯~-bilibilibilibili是國(guó)內(nèi)知名的視頻彈幕網(wǎng)站,這里有最及時(shí)的動(dòng)漫新番,最棒的ACG氛圍,最有創(chuàng)意的Up主。大家可以在這里找到許多歡樂(lè)。https://www.bilibili.com/anime/index先找到一個(gè)“限時(shí)免費(fèi)”的番劇,這里以“炮姐”這部番劇為例(這番在B站估計(jì)是永久限免的)
這里是在第11頁(yè)找到的
按F12,打開(kāi)開(kāi)發(fā)者工具
查看“限時(shí)免費(fèi)”標(biāo)簽元素以及番劇名稱(chēng)標(biāo)簽元素
?可以看到“限時(shí)免費(fèi)”標(biāo)簽對(duì)應(yīng)的 class 為?corner-tag badge_3
意味著我們可以直接通過(guò)
document.getElementsByClassName('corner-tag badge_3');
?來(lái)直接獲取當(dāng)前頁(yè)面所有的“限時(shí)免費(fèi)”<span>標(biāo)簽
拿到<span>標(biāo)簽后,就能通過(guò)元素的相鄰位置,拿到該標(biāo)簽下對(duì)應(yīng)的番劇名字
document.getElementsByClassName('corner-tag badge_3')[0].parentElement.nextElementSibling.text
?
?這樣就能使用腳本來(lái)獲取到當(dāng)前頁(yè)面所有的限免番劇名字了,不用自己一行行看了
解決了當(dāng)前頁(yè)面的查找,接下來(lái)只需要讓腳本實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)就行了
查看分頁(yè)的標(biāo)簽元素
?可以看到當(dāng)前頁(yè)的標(biāo)簽元素 class 為 p active
document.getElementsByClassName('p active');
下一頁(yè)的標(biāo)簽元素 class 為 p nextpage
document.getElementsByClassName('p next-page');
?查找完當(dāng)前頁(yè)面后,只需要判斷當(dāng)前頁(yè)面是否還有”下一頁(yè)“這個(gè)標(biāo)簽,若存在,則跳轉(zhuǎn)后繼續(xù)查找,否則腳本運(yùn)行結(jié)束,輸出所有的限免番劇
如下所示:
腳本開(kāi)始運(yùn)行,逐頁(yè)查找”限時(shí)免費(fèi)“番劇
查找完成,輸出找到的”限時(shí)免費(fèi)“番劇
腳本
javascript: (function() {var free_animation = [];function find_free_animation() {var current_page = document.getElementsByClassName('p active')[0].text;var span = document.getElementsByClassName('corner-tag badge_3');for (let i = 0; i < span.length; i++) {let title = span[i].parentElement.nextElementSibling.text;let animation = {title: title, page: current_page};console.log(animation);free_animation.push(animation);}nextPage = document.getElementsByClassName('p next-page')[0];if (nextPage) {nextPage.click();setTimeout(find_free_animation, 1000);} else {console.log(free_animation)}}find_free_animation();
})();
?
?
?