2021年11月7日 星期日

MahoMangaDownloaderVer15.3更新

這次更新也是使用者回報問題, 第一個是cocomanga在中系漫畫時, 如果跳轉的是舊網域名(cocomanhua.com), 會沒辦法下載問題; 第二個是hitomi.la在某次改版後, 網址上都會自帶頁碼(#1), 如果使用者貼上網址時也帶頁碼, 下載器就會全部圖片都下載到第一頁, 因為已經是第二個人詢問這問題, 乾脆就趁這次加自動濾除頁碼了(只限首頁), 基本上下載器不支援部分頁數下載, 所以不管什麼網站, 網址只要帶頁碼下載通常就一定會失敗, 只能麻煩使用者自己注意下了, 畢竟幫每個網站加防呆超級累, 完全不想幹...。


慣例推坑時間, 最近在看異世界魔王與召喚少女的奴隸魔術(15禁), 有點澀澀的異世界轉生動畫, 當初會想看這部是Youtube聽歌時剛好聽到第二季OP, 因為很歡樂就決定來填填坑, 沒想到還蠻對我胃口的, 第二季ED電波也超對我好球帶, 非常洗腦XD



巴哈動畫瘋: 

https://ani.gamer.com.tw/animeVideo.php?sn=11977


S1 OP



S1 ED (找不到動畫ED, 該不會是尺度問題吧...)


S2 OP


S2 ED


 


Ver15.3 更新內容:

* 修復cocomanga中系漫畫跳轉到舊網域導致不能下載問題

* 自動濾除hitomi.la網址頁碼, 避免錯誤網址造成下載圖片皆同一頁問題


下載器Demo圖:




介紹:

https://project.zmcx16.moe/?page=mahomangadownloader


MahoMangaDownloader下載器主要為幫助使用者改善線上漫畫的閱覽體驗, 如果試看的漫畫您非常喜歡, 也請麻煩購買正版支持原作者, 讓作家們能繼續創造出下一部更棒的作品。


環境需求

.Net framework 4.5.2或以上的版本

Visual C++ 2015 (只能安裝2015版, 其他版本不行)


簡單除錯:

* 如果下載失敗, 麻煩先用瀏覽器測試看資源是否存活。

* 如果能正常用瀏覽器瀏覽, 麻煩先查看LogFiles資料夾內的log檔案看錯誤訊息為何。

* 回報問題時, 麻煩提供有問題的網址以及log內容, 這樣我才有辦法測試找問題原因。


檔案位址:

https://drive.google.com/file/d/1iGP2Ov9taEuLeGSR8hIj3opI_i5WxTYJ/view?usp=sharing


32位元版本:

https://drive.google.com/file/d/1HH4P7L8HuqNoaHpjjSpQtPLilCyta1aN/view?usp=sharing


解壓密碼:zmcx16


免責聲明:

******************

MahoMangaDownloader僅作為學術研究使用,禁止利用本程式行非法用途。


35 則留言:

  1. "異世界魔王與召喚少女的奴隸魔術"這部真的超讚的,瑟瑟的點也是抓得剛剛好!!!
    我還為了他特地找了BD來看((嘿嘿嘿

    對了,我是來回報狀況,我有幾部漫畫的某些集數一直都無法下載成功,不知道該如何解決@@

    回覆刪除
    回覆
    1. 另外補充一下,也有道100%但沒顯示下載成功的

      刪除
    2. 動畫真的不錯看, 目前收小說準備填坑XD

      100%沒下載成功的問題, 如果是固定網址會發生, 再麻煩提供網址給我, 我在測試看看。 如果是偶發狀態不固定發生, 應該是資料夾在重新命名(_tmp_)時失敗造成的, 這個是corner case, 硬要處理不是不行, 就是得加一堆retry還不一定會成功可能卡在那, 因為我自己幾乎沒辦法reproduce, 目前的話是建議確認檔案狀態手動處理了。

      刪除
    3. 不知道是不是跟我這兩三天遇到的一樣?
      我是浮動IP~發生在漫畫櫃這網址
      昨天還前天第一次發生一張都沒抓就Pause
      也抓了沒抓過的也是一樣(一路Pause到底)
      有些只抓了一部份就Pause(這部份是指前面3話還可以抓的時候)
      出現Pause後後面話數都載不下來(指令切Ready重試也一樣)
      想到可能是第一次被Ban IP~直接用WIFI連手機網路
      就可以繼續載了~數據機重開也可以了
      今天則遇到另一個狀況~因為之前載不下來漫畫櫃網址也看不到
      但這次是載不下來(今天根本沒載啥)~就開了網頁發現可以看
      再把指令改回Ready重跑試試就可以載了(預設重試是三次沒改)
      不過後面再試者載另一部漫畫卻沒問題~可能..剛好載不下來吧

      刪除
    4. 您好, 漫畫櫃只要大量下載或是載的是單頁漫畫, 被ban ip的機率就會變高, 基本上遇到也只能換IP, 或是調下載器的延遲時間, 把延遲時間拉高拉長下載間隔, 沒辦法治本只能治標。

      至於非ban ip偶爾會載失敗, 這個只能手動重試了, 因為有些網站會實作一些防爬蟲機制, 可能第一次讀取的時候下載器抓到的畫面是空白或非真正的資源頁, 多試幾次才會跳轉到真正的頁面...。

      另外還有最後一種情況, 如果是跟人共用IP (e.g. 租屋網路環境), 或是你的網路環境是靜態IP, 這種被ban ip可能拉黑名單的時間會長得多, 建議沒有浮動ip的情況盡量少量下載, 或是用其他比較不會被ban的網站了。

      刪除
    5. 我自己目前在大陸出差,網路VPN時好時不好所以現在才會,非常抱歉,目前還是會有那個問題,還是能否教導一下怎麼手動處理?
      在這邊感謝你的幫忙!!

      刪除
    6. 網路問題一般來說無解..., 畢竟網站方想擋你ip就能擋你ip, 只能建議用浮動ip或是換個網路環境...。

      刪除
    7. 哈哈 果然,沒關西,我有VPN可以常常更換IP再跑,所以還好~感謝感謝~

      目前我測試下來只有DM5的網站才會有,其他都沒什麼問題
      而且奇怪的地方是,本來顯示都下載完成,但現在看檔案又都不見了

      刪除
    8. ban ip這個都是看網站方自己決定, 下載器只能遊走邊緣或換IP解決。 至於顯示下載完成卻沒載到檔案, 應該是任務狀態本身就是pause不是completed, 被ban ip的情況retry超過次數任務就會自己轉pause了, 可以注意一下是不是這情況~。

      刪除
    9. 有個情況想請教一下,就是如果同個漫畫不同漫畫網站下載,會蓋過去嗎?

      刪除
    10. 如果資料夾名稱就會當一樣的資源, 然後頁數要是不相符就會當成缺頁只下載缺頁的部分, 所以建議資料夾名稱存在的話就不要重新下載比較好。

      刪除
  2. 您好,請問追蹤漫畫可新增匯入大量漫畫的功能嗎?

    回覆刪除
    回覆
    1. 您好, 因為手邊還有不少專案要做, 下載器暫時沒有計畫加新功能喔。

      刪除
  3. 您好,前幾天更新完後,下載圖片都會變成[1/XXX]然後READY變成PAUSE,跳出下載完成的視窗。以下是LOG檔得內容
    ERROR 2021/11/14 21:33:23 ImgFile download_file download_url: https:lillie
    ERROR 2021/11/14 21:33:23 ImgFile download_file System.ArgumentOutOfRangeException: StartIndex 不可以小於零。
    參數名稱: startIndex
    於 System.String.Substring(Int32 startIndex, Int32 length)
    於 System.String.Substring(Int32 startIndex)
    於 FileIO.ImgFile.download_file(String download_url, String path, String file_name_no_extension, List`1 headers, Image_Format img_format)
    ERROR 2021/11/14 21:33:25 ImgFile download_file download_url: https:lillie
    ERROR 2021/11/14 21:33:25 ImgFile download_file System.ArgumentOutOfRangeException: StartIndex 不可以小於零。
    參數名稱: startIndex
    於 System.String.Substring(Int32 startIndex, Int32 length)
    於 System.String.Substring(Int32 startIndex)
    於 FileIO.ImgFile.download_file(String download_url, String path, String file_name_no_extension, List`1 headers, Image_Format img_format)
    ERROR 2021/11/14 21:33:29 ImgFile download_file download_url: https:lillie
    ERROR 2021/11/14 21:33:29 ImgFile download_file System.ArgumentOutOfRangeException: StartIndex 不可以小於零。
    參數名稱: startIndex
    於 System.String.Substring(Int32 startIndex, Int32 length)
    於 System.String.Substring(Int32 startIndex)
    於 FileIO.ImgFile.download_file(String download_url, String path, String file_name_no_extension, List`1 headers, Image_Format img_format)
    WARN 2021/11/14 21:33:29 DownloadProcess DoWorker Download Img exceed retry count
    WARN 2021/11/14 21:46:18 DownloadProcess DoWorker Get Page Url List Fail
    ERROR 2021/11/14 21:46:26 ImgFile download_file download_url: https:lillie
    ERROR 2021/11/14 21:46:26 ImgFile download_file System.ArgumentOutOfRangeException: StartIndex 不可以小於零。

    回覆刪除
    回覆
    1. 您好, 看log是parser抓不到正確的圖片位址, 不確定是網站改版還是其他原因造成, 在麻煩您提供有問題的網址給我, 我在測試看看喔。

      刪除
    2. 網址:https://hitomi.la/
      目前發現全部都會變成[1/XXX],原本是把網址後面的#1移除就可以了,不確定是不是檔爬蟲,謝謝您的回覆

      刪除
    3. 剛剛測試了一下, 主要是兩個問題:

      1. 圖片位址的html碼改了, 圖片的tag多了一個class=\"lillie\", 導致下載器的爬蟲抓不到正確的圖片位址, 改一下爬蟲就好了。

      2. 這個是比較噁心難解的, hitomi現在圖源預設有三種: avif, webp, jpg(這個應該才是原檔), 然後預設都會以avif為主, 只有avif跟webp出問題, 網頁才會顯示原檔的圖片, 然後我剛剛測試噁心的地方是, 只有jpg原檔的部分下載會非常容易pending(一張圖下載慢的時候甚至要幾分鐘以上), 而avif雖然下載快(畢竟是預設給人線上看的圖源), 黑白的圖片avif雖然跟原檔品質相同, 可是彩圖的轉檔品質讓人絕望:
      https://imgur.com/CeZD49o

      因為上面差異真的太大, 個人很不想讓下載器改下載avif, 所以能做的就是把parser改好, 然後把下載的timeout時間拉長(2分鐘->5分鐘), 至於到底能不能載成功, 以及下載速度會變超慢的問題, 我就沒辦法了...。

      刪除
    4. 謝謝您的回覆,至少JPG還能下載就好

      刪除
  4. 想問一下如果被漫畫櫃ban ip要怎麼更換ip呢

    回覆刪除
    回覆
    1. 您好, 能不能換 & 怎麼換ip要看你的網路設備, 如果本身網路環境就是浮動ip, 只要執行:
      ipconfig/release
      ipconfig/renew
      這兩個command就行了, 或是重啟數據機也行, 要是你的網路是固定IP或是租屋網路那種虛擬IP共用實體IP, 就沒辦法了。 我自己是用4G網路設備, 重啟4G分享器就會自動換IP了

      刪除
    2. 謝謝您 我是租屋環境的網路 那這樣需要等之後開放嘛

      刪除
    3. 那只能等了, 建議沒有浮動ip的話盡量少量下載, 不然就是用其他支援的網站了...。

      刪除
  5. 你好,昨日開始當我貼上網址時,就會有個Unhandled exception has occurred in your application 的windows 彈出來。

    從LogFile 看到以下的錯誤碼:
    WARN 2021/11/18 23:20:06 Web hwrEXH url = https://www.comicabc.com/html/18137.html
    WARN 2021/11/18 23:20:06 Web hwrEXH host_name = comicbus.com
    WARN 2021/11/18 23:20:06 Web hwrEXH ex = System.Net.WebException: The remote server returned an error: (403) Forbidden.
    at System.Net.HttpWebRequest.GetResponse()
    at WebClass.Web.hwrEXH(String _strUrl, String host_name, CookieContainer FromCookie, Boolean IsReturnHeader)
    WARN 2021/11/18 23:23:17 Web hwrEXH url = https://www.comicabc.com/html/18137.html
    WARN 2021/11/18 23:23:17 Web hwrEXH host_name = comicbus.com
    WARN 2021/11/18 23:23:17 Web hwrEXH ex = System.Net.WebException: The remote server returned an error: (403) Forbidden.
    at System.Net.HttpWebRequest.GetResponse()
    at WebClass.Web.hwrEXH(String _strUrl, String host_name, CookieContainer FromCookie, Boolean IsReturnHeader)
    WARN 2021/11/18 23:23:53 Web hwrEXH url = https://www.comicabc.com/html/18137.html
    WARN 2021/11/18 23:23:53 Web hwrEXH host_name = comicbus.com
    WARN 2021/11/18 23:23:53 Web hwrEXH ex = System.Net.WebException: The remote server returned an error: (403) Forbidden.
    at System.Net.HttpWebRequest.GetResponse()
    at WebClass.Web.hwrEXH(String _strUrl, String host_name, CookieContainer FromCookie, Boolean IsReturnHeader)

    回覆刪除
    回覆
    1. 您好, 今天確認無限動漫有改版防爬蟲, 下載器現在話集數會parser不到, 預計在這周末修復這問題。

      P.S. 我目前用瀏覽器瀏覽無限動漫圖片載入超慢, 不知道是有鎖台灣IP流量還是網站最近不穩, 即便修復好parser問題, 也不一定能用, 我剛剛自己測試載沒幾張就timeout了...

      刪除
    2. 謝謝回覆,希望能早日修服好。

      刪除
  6. 順便回報一下
    無限動漫好像不能新增漫畫也不能加入追蹤了
    隨機找另一部試試也一樣(不過網站是可以看的~應該就是上面說改版爬蟲吧)
    訊息如下
    WARN 2021/11/19 12:47:37 Web hwrEXH url = https://www.comicabc.com/html/19314.html
    WARN 2021/11/19 12:47:37 Web hwrEXH host_name = comicbus.com
    WARN 2021/11/19 12:47:37 Web hwrEXH ex = System.Net.WebException: 遠端伺服器傳回一個錯誤: (403) 禁止。
    於 System.Net.HttpWebRequest.GetResponse()
    於 WebClass.Web.hwrEXH(String _strUrl, String host_name, CookieContainer FromCookie, Boolean IsReturnHeader)

    回覆刪除
    回覆
    1. 補充
      如果是已經在追蹤裡面的似乎是可以下載的
      因為掃描後剛好有一部是無限動畫可以下載

      刪除
  7. 對, 因為改版防爬蟲的地方是話(集數), 所以只有新增漫畫才會出問題。 預計這周末修復~。

    回覆刪除
  8. 你好 我被BAN IP 且是用PPPOE連線
    有將自動重啟新IP打勾 但還是沒有自動重啟新IP
    https://imgur.com/fxPBAB7
    但自己手動中斷連線重連 又能繼續載了
    所以想請問bat檔是不是要自己加東西?

    回覆刪除
    回覆
    1. 您好, 是得沒錯, 預設附的renew_ip.bat檔案只是最簡單嘗試換IP的command, 下載器會在被ban ip時會嘗試執行設定的程式, 因為每個人的網路環境都不一樣, 這塊設定是給使用者根據自己環境設置換IP的程式, 並沒有一個可以整體適用的辦法。

      以我自己來說, 我是用4G分享器的網路, 所以有寫個針對我那台4G分享器重開機的程式, 藉以達到換IP的效果。 以你的例子來說, 必須寫一個能自己跑你手動重連線PPPOE的程式或script, 並設定執行那程式的路徑才行。

      刪除
  9. 我在選單>設置>EHENTAI>手動
    設置了CHROME抓到的
    ipb_member_id
    ipb_pass_hash
    ipb_session_id
    sk

    然後從EHENTAI找了隨便一個漫畫下載測試看看
    抓到頁面名稱但下載都是0頁
    搜尋也搜尋的到但下載都是0頁
    然後按下開始下載就不會動 LOG就會出現下面文字
    WARN 2021/11/30 22:20:48 DownloadProcess DoWorker System.NullReferenceException: 並未將物件參考設定為物件的執行個體。
    於 MahoMangaDownloader.MangaClass._ehentai.GetPageUrlList(String url, List`1 page_url_list)
    於 MahoMangaDownloader.MangaClass.MangaFactory.GetPageUrlList(String url, List`1 page_url_list)
    於 MahoMangaDownloader.DownloadProcess.DoWorker(Object param)
    WARN 2021/11/30 22:22:01 DownloadProcess DoWorker System.NullReferenceException: 並未將物件參考設定為物件的執行個體。
    於 MahoMangaDownloader.MangaClass._ehentai.GetPageUrlList(String url, List`1 page_url_list)
    於 MahoMangaDownloader.MangaClass.MangaFactory.GetPageUrlList(String url, List`1 page_url_list)
    於 MahoMangaDownloader.DownloadProcess.DoWorker(Object param)

    回覆刪除
    回覆
    1. 我也嘗試去nhentai下載試試看
      發現抓取名稱也都會顯示頁數0
      但是開始下載後就會跑出剩餘頁面跟正式開始下載
      不知道是不是ehentai的下載有問題還是有其他問題
      網頁點進去漫畫也可正常觀看
      但就是按下下載後就一直卡在ready
      用了最新的15.4也一樣

      刪除
    2. 您好, 下載器本來就是開始下載才會抓頁數, 新增漫畫顯示0頁是正常的。 至於E站我剛剛測試我的環境是可以正常下載的, 基本上抓得到漫畫名稱網路應該沒問題, 看log是在抓取資源頁面的頁數以及圖片位址的時候出錯。 你可以提供有問題的網址給我, 我在測試看看parser有沒有問題。

      刪除
  10. 經過我的測試
    結果是因為帳號在ehentai的設定有進行改動
    所以才導致抓不到圖片
    所以我換了另一個帳號沒動過設定的就可以下載了
    我猜應該是我原先用的帳號有開圖片下拉式煥頁閱覽的原因

    回覆刪除
    回覆
    1. 對, 如果是有牌(付費)的帳號, cookie會被backend記住, 導致被ban ip的話換ip也沒用, 排版跟filter相關的setting我印象中免費帳號應該是不會被記住, 不確定你的帳號是不是因為有付費的關係才造成, 或是現在免費的帳號網站也會記住這些user setting(至少ip應該是不會)。

      這些rule只能try & error + 有帳號才知道原因, 下載器不太可能把所有rule都考慮進去(這樣parser會寫到死...), 總之問題有解決就好~。

      刪除