Sleazy Fork is available in English.

怠惰聚圖&下載

規則化使其可自定義,透過CSS/XPath選擇器,定位圈選出要下載的DOM image對象,進行下載壓縮打包,也能聚集所有圖片到當前頁面裡。

Ekde 2023/04/10. Vidu La ĝisdata versio.

Aŭtoro
tony0809
Ratings
0 0 0
Versio
0.4
Kreita
2023/04/05
Ĝisdatigita
2023/04/10
Licenco
MIT
Aplikiĝas al
Ĉiuj retejoj

如有需要支持的站點可反饋,有空的話會嘗試幫寫規則加進腳本內置的規則庫裡,能力有限不保証一定寫的出來。
寫這個腳本的緣由是,想把下載、複製、插入的步驟精簡,科技始終來自於人性,懶。

說明:
透過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選擇圖片元素。

確認後需要再輸入資料夾名稱

確認後就會開始下載壓縮打包圖片