起點以及其他知名小說站都推薦用這個腳本【小說】下載腳本,遇到沒人願意適配的不知名小站再考慮我的腳本。
輕量級抓取腳本,用於下載網頁小説或其他文字內容,理論上通用於任何靜態寫入正文的小說網站、論壇、貼吧等而無需規則。
腳本會自動檢索頁面中的主要內容並下載(省得複製完gal攻略還要手動逐條刪除「某某某13級頭銜水龍王發表於X年X月X日來自XX客戶端」)。 如果位於小說目錄頁會遍歷所有章節並排序拼接後存為TXT文檔。
- 打開小說目錄頁、論壇或貼吧內容頁
- 按下
CTRL+F9或點擊命令菜單 - 按下
SHIFT+CTRL+F9忽略目錄,僅下載當前頁
對你有幫助的話,請透過PayPal管道请我喝一杯奶茶
#怠惰心法 此功共有七層,以第一層最易,第七層最難。
CTRL+F9 就完事了唄。
假若章節連結沒有 xx 章、xx 節、xx 話之類的特徵字樣,可點擊自定義下載,輸入隨便一個章節名,例如 「眾神的風車」,即可標記所有同級連結為目錄章節並下載。假如頁面有兩套章節格式,可標記多個,例如「眾神的風車,風車的眾神」。亦可標記排除項,例如「眾神的風車01!02!03,風車的眾神!鐵幕」,代表標記「眾神的風車01」同級連結並排除含有 02 的項和含有 03 的項,同時標記「風車的眾神」同級連結並排除含有“鐵幕”的項。
如果內頁沒有正文,但章節連結與真實內容連結有關聯,可通過自定義下載,替換連結內容獲取真實內容。例如 【眾神的風車@@articles@@articlescontent】,即可替換章節URL中的 article 為 articlescontent 。
如果連結無法由直接替換得到最終地址,可用正則替換,例如【眾神的風車@@articles(\d+)@@articlescontent_$1b】,即可替換章節 URL 中的 articles1、articles2 為
articlescontent_1b、articlescontent_2b
輸入章節的 css 選擇器可以更精確地標記章節連結。例如.l_chaptname>a,代表 class 為 l_chaptname 的元素下的a連結。
下載內容可能含有干擾碼,此時只需點擊懶人小說下載設置,輸入干擾碼的 css 選擇器即可排除干擾碼。例如 .mask,.ksam,代表刪除 class 為 mask 或者 ksam 的元素。
假若正文不在內頁正文,是頁面加載後處理得到的,可點擊自定義下載,輸入自定義代碼對內頁進行分析獲取正確結果。例如 【眾神的風車@@@@@@var noval=JSON.parse(data.querySelector("#meta-preload-data").content).novel;noval[Object.keys(noval)[0]].content;】,即可忽略正文,只通過自定義代碼處理返回頁面獲取內容。代碼中使用 data 可以獲得返回頁面的 document ,最後一個表達式的值為最終寫入的內容。
假若正文已經經過加密,需要解密才能獲取正確內容,可打開瀏覽器的控制台,自定義 dacProcess 函數,調取頁面中網站自身的解密代碼處理抓取的加密數據。例如控制台輸入dacProcess=data=>{return decrypt(xxx);} 代表調用網站的 decrypt 解密章節頁面返回的數據。然後再點擊自定義下載,需要注意自定義下載時標記章節是必需的。
###關於配置項
【以下功能需要通過油猴命令菜單進入】
- 自定義目錄:如https://xxx.xxx/book-**[20-99]**.html,https://xxx.xxx/book-**[01-10]**.html,意為下載book-20.html到book-99.html,以及book-01.html到book-10.html,使用**[1-10]**則不補0。
- 章節選擇器自定義:輸入章節連結的css選擇器即可,後面可以接上url替換碼、以及自定義處理代碼。
- 干擾碼:填入干擾碼的css選擇器,如
.mask,.ksam,意為刪除class為mask或者ksam的元素。 - 按標題名重新排序:是則把目錄頁所有連結按標題名排序後存入txt,否則按頁面位置順序排列。
- 下載線程數:同時下載的線程數,默認為20,遇到存在限制的站點可調低。
- po18,章節的選擇器為
.l_chaptname>a,輸入並下載後發現通過 url 無法下載正文內容,正文是 ajax 通過 articlescontent 下載的。此時可後接@@articles@@articlescontent(@@ 分隔) 將章節 url 中的 articles 替換為 articlescontent 。 綜上.l_chaptname>a@@articles@@articlescontent即可適配該站。其中第一個 articles 可使用正則,例如@@articles(\d+)@@$1content代表將連結中的「articles1」「articles2」等替換為「1content」「2content」。 - pixiv,p站小說的章節選擇器為
main>section ul>li>div>a,無需替換連結,因此後兩項留空。有6個@了 😂。正文在meta里,需要自定義代碼提取meta-preload數據的content項。綜上main>section ul>li>div>a@@@@@@var noval=JSON.parse(data.querySelector("#meta-preload-data").content).novel;noval[Object.keys(noval)[0]].content;即可下載p站小說。其中「data」代表抓取網頁的document對象,若返回的是純文本,則用data.body.innerText獲取。

