使用GitHub Actions的禁漫天堂爬蟲?
java這門語言能讓小專案變成中專案, 中專案變成大專案?
沒什麼屌的地方, 就是春節假期圖一樂?
想當初我也是立志成為一位優雅的C#er, 結果現在想要做一個新專案居然首先用java?
剛剛暫時不方便打字,但是現在我不禁想問大家, 是不是應該點一個Star❓
希望大家使用的時候要注意下, 每一次使用爬蟲下載都是對禁漫天堂的持續性訪問, 所以盡量不要一次性添加太多本漫畫, 這樣會對禁漫天堂服務器帶來比較持久的壓力,最好挑到喜歡的再選擇下載, 謝謝?
因為下載器是根據網頁結構進行分析的, 如果禁漫天堂的頁面進行了更新, 很可能會下載失敗, 所以當使用過程中發現報錯,下載失敗,缺章漏頁, 請提交issue通知我更新代碼.
更新日期 | 更新內容 |
---|---|
2023/02/16 17:00 | compiler-plugin更新到3.10.1版本,surefire-plugin更新到3.0.0-M9 |
2023/02/14 17:00 | 感謝@AragonSnow提供的最新圖片切割演算法, 大家情人節看漫快樂? |
2023/01/27 17:00 | 支援遇到反爬蟲五秒盾時自動切換域名 |
2023/01/24 17:00 | 同步跟進quarkus框架到3.0.0.Alpha3版本,surefire-plugin更新到3.0.0-M8 |
2022/12/8 11:00 | 同步跟進quarkus框架到3.0.0.Alpha2版本. |
2022/11/15 17:00 | 支援直接將.webp格式轉換為.jpg格式, 以免騰不出手的各位每次都雙擊打開下一張. |
2022/11/15 17:00 | 同步跟進quarkus框架到3.0.0.Alpha1版本. |
2022/11/05 21:00 | 修復由於不支援TLSv1.3導致握手失敗問題. |
2022/10/25 11:00 | 同步跟進quarkus框架到2.13.3.Final版本. |
2022/10/13 17:00 | 同步跟進quarkus框架到2.13.2.Final版本. |
2022/10/7 17:30 | 拋棄切割判斷演算法, 因為我已經找到需要切割和不需要切割的分界線了, 判斷相似度已經沒有意義了, 版本升級到5.1.0, 起飛? . |
2022/10/7 14:30 | 優化切割判斷演算法, 拋棄原有的每一張圖判斷一次切割規則, 現在透過隨機某一張圖片判斷整章漫畫是否需要切割, 現在可能一章中有某一頁是錯的, 但是大部分都應該是正確的. |
2022/10/7 01:00 | 同步跟進quarkus框架到2.13.1.Final版本. |
2022/10/6 17:00 | 支援下載單頁大於300張圖的漫畫功能. |
2022/10/6 01:00 | 祝大家國慶假期快樂? . |
2022/10/6 01:00 | 程式退出判斷變得更加寬鬆, 避免缺少部分圖片導致程式等待. |
2022/10/6 01:00 | 專案經過部分重構, 變得更難看懂了, 升級版本號到5.0.0? . |
2022/10/6 01:00 | 同步跟進quarkus框架到2.13.0.Final版本. |
2022/10/6 01:00 | 放棄使用graalvm22.2.0, 升級項目到jdk19. |
2022/8/12 01:00 | 由於前端水平太低, 不懂得如何判斷某一章節是否需要切割, 所以最終使用了差異值哈希算法進行相似性校驗, 繞遠路才是我的最短捷徑!?. |
2022/8/7 13:00 | 修復章節名稱以點結尾時資料夾命名出錯問題. |
2022/8/7 12:00 | 修復下載單章漫畫報錯誤問題. |
2022/8/7 11:40 | 升級graalvm到22.2.0. |
2022/8/7 11:20 | 升級支援下載webp格式的漫畫. |
2022/8/7 11:15 | 同步跟進quarkus框架到2.2.11.2.Final版本. |
2022/4/15 11:15 | 嘗試將Graalvm升級到22.0.0. |
2022/4/15 11:10 | 同步跟進quarkus框架到2.8.0.Final版本,因為廣州疫情,現在被封在管控區,但是放假太舒坦了,先讓我享受一陣放假生活,bug後面再修.? |
2022/3/31 11:00 | 修復新版漫畫頁面樣式變更導致下載失敗問題. |
2022/3/24 12:00 | 同步跟進quarkus框架到2.8.0.CR1版本. |
2022/3/18 11:20 | 同步跟進quarkus框架到2.7.5.Final版本. |
2022/3/4 11:20 | 同步跟進quarkus框架到2.7.4.Final版本. |
2022/3/4 11:20 | 同步跟進quarkus框架到2.7.3.Final版本. |
2022/2/25 10:50 | 同步跟進quarkus框架到2.7.2.Final版本. |
2022/2/13 21:33 | 同步跟進quarkus框架到2.7.1.Final版本. |
2022/2/6 11:33 | 同步跟進quarkus框架到2.7.0.Final版本. |
2022/2/1 12:33 | 新的一年祝各位LSP身體健康, 合家歡樂, 虎年大吉?. |
2022/1/28 09:33 | 同步跟進quarkus框架到2.6.3.Final版本. |
2022/1/19 23:09 | 修正漫畫高度除以分塊數取整為0時所導致的儲存圖片失敗問題. |
2022/1/15 21:26 | 修正當漫畫高度除以分塊數非整數時缺失像素導致畫面斷層問題. |
2022/1/14 11:05 | 同步跟進quarkus框架到2.6.2.Final版本. |
2021/12/21 10:10 | 同步跟進quarkus框架到2.6.1.Final版本. |
2021/12/21 10:10 | 同步跟進quarkus框架到2.6.0.Final版本. |
2021/12/21 10:10 | 同步跟進quarkus框架到2.5.4.Final版本. |
2021/12/13 15:10 | 同步跟進quarkus框架到2.5.2.Final版本. |
2021/12/3 11:15 | 同步跟進quarkus框架到2.5.1.Final版本. |
2021/11/25 17:15 | 同步跟進quarkus框架到2.5.0.Final版本. |
2021/11/8 15:30 | 同步跟進quarkus框架到2.4.1.Final版本. |
2021/11/7 01:10 | 恭喜EDG獲得英雄聯盟S11全球總決賽冠軍?重鑄LPL榮光, EDG義不容辭!?. |
2021/10/29 10:38 | 嘗試將jdk升級到Graalvm17. |
2021/10/13 16:47 | 2.3.0的quarkus插件有問題,無法讀取到配置的settings.xml檔,所以升級到框架2.4.0.CR1. |
2021/10/10 14:30 | 同步跟進quarkus框架到2.3.0.Final版本, 升級程式版本號為4.0.0. |
2021/10/10 14:30 | 修正本機運行時日誌編碼列印非UTF-8導致亂碼問題. |
2021/10/10 14:00 | 終於修復了禁漫天堂cloudflare驗證問題,現在可以正常使用了. |
2021/9/12 13:49 | 同步跟進quarkus框架到2.2.2.Final版本. |
2021/9/10 13:38 | 感謝@calject大佬提供的最新圖片切割演算法?, 現在終於可以正確切割最新的章節了?. |
2021/8/10 16:47 | 同步跟進quarkus框架到2.1.1.Final版本. |
2021/7/28 10:40 | 同步跟進quarkus框架到2.0.3.Final版本. |
2021/7/01 10:40 | 熱烈祝賀我黨成立100週年?, 希望諸位LSP看漫之餘不忘初心牢記使命?. |
2021/7/01 10:30 | 同步跟進quarkus框架到2.0.0.Final版本. |
2021/5/31 10:43 | 提交3.1.0 release版本. |
2021/5/26 15:40 | 修復由於訪問頻率過高提示禁漫娘被你玩壞啦??ヽ(??Д`)??休息一分鐘後會好限制訪問導致的爬取失敗, 禁漫天堂從接口層面加了訪問速度限制之後, 下載會不可避免地變慢, 因為每次觸發限制都最少要一分鐘才能重新訪問. |
2021/5/15 18:34 | 週末突然發現禁漫天堂又撤掉了Cloudflare 5秒盾, 程式又能直接透過github action使用了, 不需要添加cookie. |
2021/5/9 17:30 | 由於禁漫天堂最近加了Cloudflare 5秒盾反爬蟲, 暫時需要在配置文件中添加cookie才能爬取, 請根據下方說明添加cookie, 後續我看看用什麼方法繞過攔截. |
2021/4/13 14:30 | 新增觸發action的限制, 只有修改了downloadPath.json檔案才會觸發action, 修改其他檔案則不觸發. |
2021/3/27 14:04 | v3.0.0 放棄springboot框架, 換成使用響應式框架quarkus, 感覺應該是更快了的. |
2021/2/25 15:16 | v2.0.0 重大更新, 支援直接使用Github Action自動爬取漫畫, 不需要本地部署, 直接輸入漫畫url然後等待Github Action爬取完成然後下載壓縮包即可. |
2021/2/18 22:15 | v1.2.0支援下載整本只有一章的無章節漫畫. |
2021/2/18 16:35 | 新增下載單獨某個章節的功能. |
2021/2/18 15:38 | 確保設定檔中配置為空時程式能夠正常識別. |
2021/2/17 20:51 | 修正因章節清單格式不規範導致的取得章節名稱失敗. |
v2.0.0之後現在支援直接使用Github Action進行下載, 不需要手動部署了.
Github Action是微軟收購github之後推出的CI/CD工具, 你可以理解為這是一台微軟免費給你白嫖的2核7G內存的服務器, 每次提交代碼都可以觸發運行一次服務器.
現在程式支援提交程式碼之後直接透過這個伺服器幫你下載完成漫畫, 然後打成一個壓縮包, 提供給你下載.
感謝微軟, 微軟大法好?
透過以下步驟即可在GitHub Action上運行程序
進入/src/main/resources/downloadPath.json
, 點擊箭頭所指的編輯按鈕,對該文件進行編輯,注意使用github action模式的時候只需要修改這個json文件, 其他任何文件都不需要修改, 也不要提交pull request到上游來.
依照json格式填入漫畫連結, 如果要下載一本, 那格式為(注意英文雙引號) :
[
" https://18comic.vip/album/180459 "
]
如果要下載兩本或多本, 格式為(注意英文逗號) :
[
" https://18comic.vip/album/180459 " ,
" https://18comic.vip/album/182168 "
]
注意盡量不要一次性添加太多漫畫, 否則下載起來時間要很久, 壓縮包也會很大, 並且添加的鏈接要是直接能訪問到禁漫天堂的網站, 而不是各種鏡像站, 根據禁漫天堂的公告板提示, 你所新增的漫畫網域應該來自以下2個:
https://18comic.vip (最好直接使用這個, 把你的漫畫連結網域直接更換成這個就可以了.)
https://18comic.org (如果.vip無法使用, 則嘗試使用這個.org網站)
新增完成之後, 點擊下方提交按鈕:
提交完成之後進入Actions頁面查看程式運行狀況:
綠色說明運行成功, 黃色說明正在運行, 紅色說明運行失敗. 運行成功之後, 點擊對應的任務:
點擊箭頭所指的finder-result壓縮包文件, 即可下載已經打包好的爬蟲圖片, 注意下載這個壓縮包的時間取決於你訪問github的速度, 如果沒有科學上網可能需要下載很久.
安裝jdk19.
安裝maven.
下載原始碼並且修改application.properties檔案中的以下幾個配置:
comic.download.path =C:\Users\jiayao\Pictures
comic.proxy.host =127.0.0.1
comic.proxy.port =10808
4.執行mvn clean package
得到最後的jar包
如果直接下載我提供的jar包, 無法手動編輯jar包內的properties文件, 請在jar包所在的目錄新建一個config文件夾, 在裡面新建一個application.properties文件, 然後粘貼並且修改上述幾個參數.
程式現在支援兩種運行模式, 作為單次運行的前台模式, 和作為持續運行服務的後台模式
前台模式是指程式完成下載任務之後會自動關閉, 透過讀取程式碼中的downloadPath.json檔案內的連結, 或啟動時傳入參數來進行下載, 每一次下載都要執行一次程式.
如果有條件手動打包程式, 則進入/src/main/resources/downloadPath.json
目錄, 按照json格式填入漫畫連結, 如果要下載一本, 那格式為:
[
" https://18comic.vip/album/180459/ "
]
如果要下載兩本或多本, 格式為(注意逗號) :
[
" https://18comic.vip/album/180459/ " ,
" https://18comic.vip/album/182168 "
]
前台模式與後台模式都支援下載整本漫畫或單獨某個章節.
新增資料之後, 打包, 然後在確保已經有jdk19之後, 命令行中進入jar包所在的目錄, 執行java -jar ./*.jar
即可按照前台模式運行程序, 程序會自動下載json文件中的所有漫畫, 下載完成之後, 程式會自動退出.
如果沒有條件打包程式, 但是有條件運行程式, 例如只裝了jdk19但是沒有安裝maven等, 那就直接下載我提供的jar包, 按照前面說所方法在jar包所在的目錄新建一個config文件夾,在裡面新建一個application.properties檔, 貼上並且修改上述幾個參數, 然後命令列進入jar所在的目錄, 執行java -jar ./*.jar 漫画路径1 漫画路径2
,例如java -jar ./*.jar https://18comic.vip/album/180459
, 這本漫畫就會被下載, 多本漫畫請用空格隔開.
後台模式是指程式將會作為一個服務持續運作, 透過等待介面請求來下載漫畫, 每一次請求介面就會進行一次下載, 程式完成下載後不會自動關閉.
程式打包或下載我提供的jar包, 然後在確保已經有jdk19之後, 命令行中進入jar包所在的目錄, 執行java -jar ./*.jar -s
(注意-s參數)即可按照後台模式執行程式, 下載完成之後, 程式會繼續等待服務.
執行程式之後開啟瀏覽器, 在網址列輸入:
http://localhost:7788/finder/download? homePage =你想要下载的漫画主页
即可開始下載整本漫畫, 例如
http://localhost:7788/finder/download? homePage =https://18comic.vip/album/177680
如果想要下載單獨的某一個章節, 只需要輸入對應的章節主頁即可, 例如
http://localhost:7788/finder/download? homePage =https://18comic.vip/photo/211115