Github:https://github.com/HSSLC/manhuagui-dlr
僅作為個人學術研究使用,勿作為其他用途,本人不負任何衍生問題責任
功能
這是自動化批次下載manhuagui的漫畫的程式,使用python製作。
載完後可以使用自製的kc-generator來編成一本kindle mobi格式的漫畫。
本程式特點
- 自動轉檔,原始檔為webp,可以轉換為jpg
- 依照章節歸檔
- 可無須外部JS環境或前台瀏覽器
- 可以初始化好了之後就放置自己運作,過程不干擾電腦使用
- 支援proxy(代理伺服器)與proxy pool
proxy設定方式
預設情況下proxy是關閉的。
proxy設定內容都在proxy.py
裡面。proxy_config
變數是設定proxy模式的,能使用的值有none
(關閉)、single
(單一)、pool
(隨機)
single
只使用單一一個proxy,設定值在下方proxy
變數中,如果要調整請在http
和https
的值中填入自己要用的proxy位址。
pool
從proxy_pool
的列表中隨機選擇一個proxy使用,如果正確設定的話可以用不同proxy分攤流量,就能調短下載的延遲時間,達到更快的下載速度。
使用方式一樣是在http
和https
的值填入proxy的位址,也可以新增更多的proxy進proxy_pool
。
proxy憑證問題
有些proxy在https上面的憑證會有問題,此時可以將verify
調整成False
來跳過驗證,但是主控台會被警告洗版。
proxy注意事項
proxy位址無論是不是https,在設定中都要打成http。
如果要取得免費的proxy位址的話可以上網查free proxy list並選擇有支援https的來使用。
使用上要注意的點
manhuagui有防機器人的機制,短時間內流量過大會被ban IP好幾天,調整下載延遲參數的時候要特別注意一下,如果有使用proxy pool的話可以調短一點,但還是量力而為。
心得
機械化下載東西的第一步基本上就是要找到資源的metadata儲存方式,但manhuagui的原始碼中把metadata打碎,再用混淆過後的JS來還原回一行帶有資料的JS,然後eval該行程式,讓破解更難追蹤。
在做這個程式前有先查過了其他人有沒有做過相似的東西,結果看到很多很傻眼的操作,例如:
- 把整段混淆的JS複製走,用python呼叫外部JS環境執行該段JS,再把結果傳回python(Cytus管理局:拆下整個遠古科技殘骸作為系統核心,技術是什麼我們不知道)
- 直接開前台瀏覽器,用python控制網頁GUI,然後截圖,對妳沒看錯,就是截圖,看到直接中風。
那些呼叫外部JS環境執行專案,可能連那段程式做了什麼他們都不知道,只知道這樣的字串丟進去就能拿到那樣的結果。
我個人的做法是花了平時一周的空閒時間把該段混淆完的js分析完,再用python重現該種轉換,所以不需要用到外部JS環境,當然也不會有瀏覽器在前台動來動去。
未來走向
近期在把整個下載器重新整理成另一個專案,希望可以更好改動需要變更的參數,也可以用更模組化的方式呼叫。
註明
因為解析反反編譯的程式花了我很多時間,其實製作程式也是很耗費功夫的,程式隨便拿沒關係,但不要把他當成自己原創的,引用要附來源,謝謝。