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變數中,如果要調整請在httphttps的值中填入自己要用的proxy位址。

pool

proxy_pool的列表中隨機選擇一個proxy使用,如果正確設定的話可以用不同proxy分攤流量,就能調短下載的延遲時間,達到更快的下載速度。
使用方式一樣是在httphttps的值填入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環境,當然也不會有瀏覽器在前台動來動去。

未來走向

近期在把整個下載器重新整理成另一個專案,希望可以更好改動需要變更的參數,也可以用更模組化的方式呼叫。

註明

因為解析反反編譯的程式花了我很多時間,其實製作程式也是很耗費功夫的,程式隨便拿沒關係,但不要把他當成自己原創的,引用要附來源,謝謝。