如有需要支持的站點可反饋,有空的話會嘗試幫寫規則加進腳本內置的規則庫裡,能力有限不保証一定寫的出來。
寫這個腳本的緣由是,想把下載、複製、插入的步驟精簡,科技始終來自於人性,懶。
說明:
透過CSS/XPath選擇器javascript代碼,定位圈選出要下載的DOM image對象,進行下載壓縮打包,也能聚集所有圖片到當前頁面裡。
支援自定義規則方便重複使用,後續擴充規則更容易。
可用規則範例:
[{
name: "規則名稱",
enable: 0, //填0禁用此規則(非必須)
reg: /www\.xxxxx\.com/, //正則表達式匹配網址
init: "code", //載入頁面後執行一次的代碼
include: "#TheImg", //網頁必須包含的元素(非必須),支持CSS / XPath
exclude: "#TheImg", //網頁要排除的元素(非必須),支持CSS / XPath
imgs: "#TheImg", //CSS選擇器
imgs: "//img[@id='TheImg']", //XPath選擇器
imgs: "js;code", //也可透過javaacript代碼自己創建IMG元素陣列Array或圖片網址陣列,有時大圖是在A元素上需要透過xhr獲取,也有圖片網址是放在代碼裡或是變量或是透過api取得的json。
//[img, img, img] 圖片元素陣列
//[圖址1, 圖址2, 圖址3]圖片網址陣列
insertImg: ["元素", 1], //[清空此元素內容插入圖片, 0(手動)1(自動)2(自動Lazy loading閱讀模式)],支持CSS / XPath。
autoClick: "#show-all-images-button", //載入頁面後點擊一次此元素
observerClick: "#show-all-images-button", //元素進入可視範圍內才點擊
customTitle: "code", //自定義javaacript代碼生成壓縮檔名稱(非必須),預設是使用當前網頁標題。
next: "//a[text()='下一章']", //設定下一頁元素綁定右方向鍵點擊下一頁。
css: "css", //插入自訂樣式,基本上就是用來隱藏廣告用的。
one: true, //使用單線程下載(非必須),有些網站限制連接數,併發請求容易出錯。
category: "comic" //類別(非必須)
}, {
name: "規則2",
reg: /www\.xxxxx\.com/,
init: "",
include: "",
exclude: "",
imgs: "",
insertImg: ["", 0],
autoClick: "",
observerClick: "",
customTitle: "",
next: "",
css: "",
category: ""
}, {
name: "規則3",
…
}]
內置函數:
「 點即展開查看 」
// 返回一個指定元素,支持CSS/Xpath選擇器
fun.ge('元素選擇器', 目標節點(省略則為 document))
// 返回所有指定元素,支持CSS/Xpath選擇器
fun.gae('元素選擇器', 目標節點(省略則為 document))
//等同eval()
fun.run('代碼')
//將字串解析成document物件
fun.html('字串')
//對document.title的字串修改
fun.title('字串',mode)
mode0返回【刪除指定字串的標題(預設)】
mode1返回【字串切割取[0]去前後空白】
mode2返回【字串切割[0] + '字串' + 字串切割[1]】
mode3返回【字串切割[1] + '字串' + 字串切割[0]】
//取得元素的字串
fun.geT('元素選擇器',mode)
mode1返回指定元素的字串(預設)
mode2返回指定元素的上一個元素的字串
mode3返回指定元素的上上一個元素的字串
//xhr抓取元素 (只支持靜態網頁,無法跨域請求)
fun.getImg('圖片元素選擇器',max ,mode ,['圖片網址用來替換的字串','圖片網址要被替換的字串'](可省略) )
max填入用fun.geT()取得最大頁數的數字,或想辦法算出最大頁數的數字。
網址頁碼數字遞增模式
第一頁 ==> 第二頁
mode1(預設)
.html ==> .html?page=2
mode2
.html ==> /2.html
mode3
.html ==> _1.html
mode4
/ ==> /2/
mode5
.html ==> -2.html
mode6
?p=1 ==> ?p=2
mode7
.html ==> .html/2
mode8
==> &page=1
fun.getImgA('圖片元素選擇器','A元素選擇器' ,mode,['圖片網址要替換的字串','圖片網址要被替換的字串'](可省略))
mode0多線程(預設)
mode1單線程
A元素選擇器的href屬性不能是#和javascriptc或onclick監聽點擊事件,必須是正常的http鏈接。
//顯示訊息
fun.show('字串',1000(顯示的時間,低於1000持續顯示))
寫好規則後就只需要
點擊圖示、Enter、Enter,3步開始下載。
右鍵點擊圖示、Enter,2步驟複製圖片網址,如果設置了insertImg,按右鍵是插入圖片,第二次按是複製圖片網址。
腳本有綁定按鍵
數字鍵0下載壓縮、數字鍵1複製圖片網址
按0、Enter、Enter,3步驟開始下載。
按1、Enter,2步驟複製圖片網址。
如果設置了insertImg,按1、Enter是插入圖片,無法複製圖片網址。
舉例一
漫畫網站設定下一頁元素,按右方向鍵、0、Enter、Enter就能接著下載下一話了。
舉例二
對於一頁一張圖片的漫畫網站要插入全部圖片,設定完整規則和insertImg,按1、、Enter就能插入全部圖片。
目前腳本內置的規則不多,主要還在測試階段,後續應該會慢慢增加支援的網站。
圖介
在頁面左下添加了一個圖片下載按鈕
點擊後會彈出確認窗輸入CSS和Xpath選擇圖片元素。
確認後需要再輸入資料夾名稱
確認後就會開始下載壓縮打包圖片