2016年12月21日 星期三

MahoMangaDownloaderVer2.2更新

Ver2.2更新內容:
解決程式針對某些個案會多載頁數的問題(過濾留言板上所貼的圖片資源位址)。


Ver2.1更新內容:
1.搜尋過濾功能從固定改至可修改的參數列中。
2.增加非法檔案路徑的防呆處理。
3.解決砍原檔時程式會出現例外錯誤。



其實之前也有偶然發現這問題(我幾乎沒載月刊類,所以很少遇到...),可是那時候太忙又是個案問題,就一直沒處理,到上禮拜終於把BOSS這邊的東西忙完,剛好有人反應這問題又是最閒的時候,就趁現在處理一下了(吐槽: 現在不是得認真找工作了嗎!!?...嗚.....我會開始認真找的....)。


基本上就是parser的部分再優化,過濾留言版上的貼圖訊息而已,通常月刊類的資源才比較會遇到,月刊類作品會有人在留言板上註記每篇的目錄頁處,所以程式就變成每40頁都會多載到那些目錄頁了。


另外由於跟Ver2.1的時間隔得很短,所以想知道Ver2.1改版細節的話,請參考這篇:
https://zmcx16.blogspot.tw/2016/12/mahomangadownloaderver21.html


版本:Ver2.2

支援漫畫網站:
http://www.99comic.com/
http://www.8comic.com/(http://www.comicbus.com/)
紳士網&EX紳士網

支援批次功能,但不提供多執行緒下載(請多珍惜各個資源網站)。

要下載EX紳士網的資源,必須先設置一次Cookie(選單->設置Cookie->輸入帳密),產生Cookie檔後即可下載EX資源,之後皆不需重新設置。

支援搜尋功能,搜尋過濾的關鍵字可在選單->參數設置的地方修改,預設為只輸出日文,中文,英文資源,分隔關鍵字為 '|' 字元。

對應系統:
Windows (.netframework4.5)
 




檔案位址:
https://drive.google.com/file/d/0B6Btq693utJPY0U0bUZxWTd5aG8

32位元版本:
https://drive.google.com/file/d/0B6Btq693utJPTUd0dVlZM0NaQmc

解壓密碼:zmcx16


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

2016年12月19日 星期一

MahoMangaDownloaderVer2.1更新

Ver2.1更新內容:
1.搜尋過濾功能從固定改至可修改的參數列中。
2.增加非法檔案路徑的防呆處理。
3.解決砍原檔時程式會出現例外錯誤。

雖然兩個月前就畢業了,不過到這禮拜才終於把Boss要投稿的paper的東西整個收尾完畢,沒想到竟然是畢業兩個月後才真正的算解脫哪...比我預想的還要多一個多月OTL。

這次的更新其實只修改一些些地方,由於例外錯誤的部分可以靠使用上繞過去,所以就一直懶得修bug,非法路徑的防呆處理其實也主要是針對自己個人使用上的方便,畢竟我都習慣把作者名當路徑資料夾,有些作者名會有非法字元的情況下,想說與其像之前一樣手動改還不如讓程式自己防呆過濾,總之一切都是為了自己懶~。

而過濾搜尋的部分由於自己只會想要日、中、英的資源,所以之前的搜尋過濾字詞是固定參數,想說修完bug乾脆也順便改為可設置參數。


題外話,感覺每次修bug只要十幾分鐘,反而是測試跟搞release花更多時間,所以之後應該也會跟之前一樣,有重大Bug會立刻修(e.g.網站改版導致不能下載), 使用上可繞過的C級Bug or 懶人功能就有空在搞了~。而以前發布時都只會發布在ptt的AC_IN版跟自己的FB & Bloger, 之後打算只有重大改版才會在ptt發文, 像這次的小改版就打算只放在自己FB跟Blogger上了。

在來就是該開始認真找工作啦....希望能找到一個良好的工作環境哪~!!

---------------------------------------------------------------------------------------------------------------
版本:Ver2.1

支援漫畫網站:
http://www.99comic.com/
http://www.8comic.com/(http://www.comicbus.com/)
紳士網&EX紳士網

支援批次功能,但不提供多執行緒下載(請多珍惜各個資源網站)。

要下載EX紳士網的資源,必須先設置一次Cookie(選單->設置Cookie->輸入帳密),產生Cookie檔後即可下載EX資源,之後皆不需重新設置。

支援搜尋功能,搜尋過濾的關鍵字可在選單->參數設置的地方修改,預設為只輸出日文,中文,英文資源,分隔關鍵字為 '|' 字元。

對應系統:
Windows (.netframework4.5)
 




檔案位址:
https://drive.google.com/file/d/0B6Btq693utJPOWM0WWE3enQ2R1U

32位元版本:
https://drive.google.com/file/d/0B6Btq693utJPUk1kZWlQZmZMbFE

解壓密碼:zmcx16


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

2016年8月7日 星期日

MahoMangaDownloaderVer2.0更新

Ver2.0更新內容:
1.解決紳士網暫時性死檔問題 (感謝橘子葉提供的訊息)
2.修正表站無法使用搜尋功能的bug。
3.改善檔案檢查緩慢&多餘下載流量的bug。


關於紳士網暫時性死檔問題,原來有個地方可以直接跨過鏡像網站跳到主站下載資源,我之前都不知道.....。原本的程式下載失敗3次只會將該檔移到序列最後,現在程式則會透過主站下載資源,不過為了避免增加網站的負擔,只有在下載檔案失敗時程式才會跳到主站下載資源。

而第二點跟第三點,主要是因為Ver1.9版改得太草率(網站改版當天就急著改完上傳上去了...隔天還要meeting囧),沒有多做測試導致的bug,原本檔案檢查的前半部分被繞過去,才導致檢查檔案的緩慢以及下載流量的多餘增加...。

另外在這邊也十分感謝大家對Ver1.9版的幫忙,才讓我順利在沒辦法reproduce錯誤環境的情況下debug,有遇到其他問題在麻煩跟我說一聲,時間許可的情況下我會盡量處理...。


---------------------------------------------------------------------------------------------------------------
版本:Ver2.0

支援漫畫網站:
http://www.99comic.com/
http://www.8comic.com/(http://www.comicbus.com/)
紳士網&EX紳士網

支援批次功能,但不提供多執行緒下載(請多珍惜各個資源網站)。

要下載EX紳士網的資源,必須先設置一次Cookie(選單->設置Cookie->輸入帳密),產生Cookie檔後即可下載EX資源,之後皆不需重新設置。

支援搜尋功能,但預設只輸出日文,中文,英文資源。

對應系統:
Windows (.netframework4.5)
 




檔案位址:
https://drive.google.com/open?id=0B6Btq693utJPXzA1Q2FKV2ZqdU0

32位元版本:
https://drive.google.com/open?id=0B6Btq693utJPQ0VVa08yTndkOUk

解壓密碼:zmcx16


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

2016年7月28日 星期四

MahoMangaDownloaderVer1.9更新

2016/8/3-----------------------------
關於部分電腦開啟程式沒有回應的問題,造成bug的原因可能是因為,我寫的其中一行Code有使用.Net元件,在我的開發環境下初始化執行沒有問題,可是某些人電腦在初始化的時候會失敗,所以程式才打不開...。

記得以前也有遇到類似的問題,在家裡寫的code可以正常編譯執行,拿到實驗室的電腦執行時卻初始化失敗,照理說該Event應該只有在程式執行的過程才會觸發,但是VS在初始化時就觸發該事件,而該事件用到的其他元件還沒有初始化,才導致執行錯誤....後來也沒轍,只能繞過處理囧

只不過這次更慘烈的是,我不論用哪台電腦還是虛擬機試,都沒辦法reproduce這次的bug環境,只能靠網友提供的錯誤訊息debug...希望這種蒙著眼debug的事不要有下次了...。

------------------------------------------

2016/7/28----------------------------
關於部分在win8,win10無法開啟程式的問題,經測試應為7-zip壓縮的問題,目前檔案已更新,有問題在麻煩跟我說一聲,謝謝。
------------------------------------------

Ver1.9更新內容:
1.因應紳士網改版修正程式。
2.新增未完成資料夾會加前贅詞_tmp_。
3.下載路徑的末端會自動修正為最終目錄。


紳士網現在會強制自動導向至https,舊版程式的parser沒有針對這塊做處理,現以修正完畢。另外因應要求,現在下載中的資料夾會自動增加贅詞區隔,方便使用者整理檔案。

很久沒改版,這次出問題看了下一個多月沒更新的部落格,結果今天的流量多了不少,至少讓大家知道有個管道會放更新的地方還是有用的,有點欣慰哪...。

順便抱怨個一句,幹嘛挑我meeting前一天改版.....OTL。

---------------------------------------------------------------------------------------------------------------
版本:Ver1.9

支援漫畫網站:
http://www.99comic.com/
http://www.8comic.com/(http://www.comicbus.com/)
紳士網&EX紳士網

支援批次功能,但不提供多執行緒下載(請多珍惜各個資源網站)。

要下載EX紳士網的資源,必須先設置一次Cookie(選單->設置Cookie->輸入帳密),產生Cookie檔後即可下載EX資源,之後皆不需重新設置。

支援搜尋功能,但預設只輸出日文,中文,英文資源。

對應系統:
Windows (.netframework4.5)
 




檔案位址:
https://drive.google.com/open?id=0B6Btq693utJPUEFaOHd0dkVsaGc

32位元版本:
https://drive.google.com/open?id=0B6Btq693utJPTUxJM3VvNFMyRms

解壓密碼:zmcx16


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

 

2016年5月6日 星期五

MahoMangaDownloaderVer1.81更新

Ver1.81更新內容:  
修正表站搜尋Bug。

摸了一下查明原因後,感覺真的蠻玄的.....

總之...紳士網表站有個很詭異的現象,有些資源網址如果你不是在登入(有Cookie)的情況下,他會顯示:

This gallery has been removed, and is unavailable.
You will be redirected to the front page momentarily.
(Click here to continue)

但實際上他資源沒有掛,只要你是在登入的情況下,是可以看到正常資源的網頁。

所以會出現這個狀況舉例來說,假如搜尋XXX關鍵字,總共有搜尋到65個網址,然後大概有5~6個出現這種情況,所以才會造成無法正常取得資源的bug.

更新Ver1.81之後,在一樣的情況下,如果你沒有Cookie,那程式會提示你上述的那5~6個資源無法加入清單,如果你有設置Cookie的話,那搜尋到的65個資源都會正常加入。

我基本上都是使用EX(裏站不會有這個問題),所以才會都沒注意到有這問題...。

---------------------------------------------------------------------------------------------------------------
版本:Ver1.81

支援漫畫網站:
http://www.99comic.com/
http://www.8comic.com/(http://www.comicbus.com/)
紳士網&EX紳士網

支援批次功能,但不提供多執行緒下載(請多珍惜各個資源網站)。

要下載EX紳士網的資源,必須先設置一次Cookie(選單->設置Cookie->輸入帳密),產生Cookie檔後即可下載EX資源,之後皆不需重新設置。

支援搜尋功能,但預設只輸出日文,中文,英文資源。

對應系統:
Windows (.netframework4.5)


檔案位址:
https://drive.google.com/file/d/0B6Btq693utJPUnhZWFhaamlmcDQ/view?usp=sharing

32位元版本:
https://drive.google.com/file/d/0B6Btq693utJPQnhyY2RoeFBkV2M/view?usp=sharing

解壓密碼:zmcx16


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

2016年4月23日 星期六

MahoMangaDownloaderVer1.8更新

Ver1.8更新內容:
增加下載原始圖檔的功能(需設置Cookie)。
選單->參數設置->下載原尺寸圖檔打勾。

網站上的漫畫如果檔案太大,網站本身會進行壓縮處理,Ver1.7以前的版本只會下載到壓縮後的圖檔。

Ver1.8版有對Cookie檔案做稍微修改,故Cookie必須重新設置一遍(ComicList,file_catalog格式跟之前檔案相同,可直接從舊版copy過去)。

1.8版之後的檔案會設置密碼,密碼為作者ID,造成困擾敬請見諒。

隨筆:
有網友詢問是否可增加下載原始圖檔的功能,我才知道原來網站有未壓縮圖檔的下載途徑(不需額外花費cost),以前完全沒有發現網站有提供這功能....OTL。

再一次感謝那網友的意見回饋~~!!!

---------------------------------------------------------------------------------------------------------------
版本:Ver1.8

支援漫畫網站:
http://www.99comic.com/
http://www.8comic.com/(http://www.comicbus.com/)
紳士網&EX紳士網

支援批次功能,但不提供多執行緒下載(請多珍惜各個資源網站)。

要下載EX紳士網的資源,必須先設置一次Cookie(選單->設置Cookie->輸入帳密),產生Cookie檔後即可下載EX資源,之後皆不需重新設置。

支援搜尋功能,但預設只輸出日文,中文,英文資源。

對應系統:
Windows (.netframework4.5)


檔案位址:
https://drive.google.com/file/d/0B6Btq693utJPcmxsVXNCa0kwZTA/view?usp=sharing

32位元版本:
https://drive.google.com/file/d/0B6Btq693utJPVXpCaHZrQjlmZVU/view?usp=sharing

解壓密碼:zmcx16


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





2016年4月22日 星期五

MahoMangaDownloader開發過程

因為有網友來信詢問下載器的開發過程,回覆他後想說也把相關經驗放上來,給大家做個參考:

寫程式流程大概如下:

1.先用瀏覽器到該漫畫網站,按F12進入開發者模式看他的html碼,看我真正想要的資源網址在哪裡。

2.寫程式去下載該網站的html碼(有時需要多跑js),寫個regular expression讓程式去把我真正要的資源網址正確parse下來。

3.得到正確的資源網址後,下載該資源網站的html,再寫另一組對應的regular expression,取得真正的圖片位址。

4.讓程式下載該圖片,結束。


至於如何訪問網站,以C#來說有很多類別可直接使用(webrowser,webclient,webrequest), webrowser算是最上層的類別(就是整個瀏覽器類別,你使用他就像在使用瀏覽器),webrequest則是最底層的類別,你使用他就是一次送一個封包。

我剛開始做這個的時候,是使用webrowser,直接像是在操控瀏覽器,幫助我獲取資源位址。可是缺點就是慢,不穩定,事件的判斷不精準,所以只有一開始的8comic我使用webrowser去幫我載,之後支援的網站(99,紳士網&EX)都是用webrequest送真正需要的封包。

如果你真的開始接觸,會發現很多問題真的只能遇到在處理,因為很多漫畫網站會做些阻礙機制,避免你用程式而不是瀏覽器去訪問他的網站,像是真正的資源網址用JS藏起來,網站要二次跳轉才會到真正的頁面,放一堆跟資源網址很像的假網址等等...這些都只能遇到在克服。





開發歷程:

其實我之前碰程式也幾乎都是在寫作業而已,完全沒做過這樣實用的工具...(大學修C++課程,C#自學,以前反而花比較多時間在8051跟PIC上...)。只是考完研究所等入學很閒,就想做這東西出來,就開始一直摸一直摸,真的是從什麼都不懂靠google一點一點拼出來,以過程來說:

第1~2天->終於會用webrowser瀏覽網站,下載資源了。
3~4天->學習regular expression,讓程式幫我parse真正要的資源地址。
5~6天->一整個簡單下載流程都順利work,開始用 windows form拉GUI套件做整個視窗程式。

之後-> 微調,debug,增加支援網站,遭遇各種不同問題,想辦法解決,增加功能....


我真正大概花了兩個禮拜的時間(全天,不過大多數時間都在google找方法,解決問題)寫完最初步的下載器(支援8comic,99comic),之後才陸續增加紳士,EX紳士網,然後又是一段Google學習之旅(看懂cookie,改header等等)。


要是沒有熱忱,沒有投入進去,我應該也做不出來,因為在這之前我連C#有webrowser類別,webrequest是什麼都不知道(我高中&大學念電子,對資工東西沒很熟...雖然現在也是囧),只能說真的有心的時候什麼都做得到,期望自己接下來能趕快找到下一個能投入的事哪..!!


希望以上這些經驗能對大家有幫助~!!



最後抒發一下,目前跟BOSS談好,看能不能盡量趕在9月讓我畢業,雖然已獲得許可寫自己碩論了,可是還是得幫BOSS做事,充實現在的paper內容並發出去才行...。

目前給自己的規劃是:6月完成初步碩論,7~8月準備作品集,充實履歷找工作,9月畢業!!
當然這段時間,也得並行的幫老師把paper發出去,希望一切順利啦!!

zmcx16

2016年4月15日 星期五

MahoMangaDownloaderVer1.7更新

版本:Ver1.7

支援漫畫網站:
http://www.99comic.com/
http://www.8comic.com/(http://www.comicbus.com/)
紳士網&EX紳士網

支援批次功能,但不提供多執行緒下載(請多珍惜各個資源網站)。

要下載EX紳士網的資源,必須先設置一次Cookie(選單->設置Cookie->輸入帳密),產生Cookie檔後即可下載EX資源,之後皆不需重新設置。

支援搜尋功能,但預設只輸出日文,中文,英文資源。

對應系統:
Windows (.netframework4.5)

Ver1.7更新內容:
增加視窗可調功能。
增加參數設置功能,增加參數如下:

準備時間(ms):
紳士&EX在開始下載(獲取每一頁的連結)的等待時間,如單本漫畫的頁數非常多(1000頁以上),調高準備時間可降低被ban ip風險,如果都只下載200頁以下的漫畫,可直接設為0。

下載間隔(ms):
每頁下載的間隔時間,調高雖然會下載較慢,但可降低資源網站負擔(請大家多珍惜各個資源網站)。
P.S. 我遇到被ban的情況大多是1000頁以上的單本漫畫,如果你都只下200頁以下漫畫還是被ban,就請再調高下載間隔的時間吧。

重試時間:
等待資源時間,超過這時間即重試一次。

重試次數:
最大重試次數,超過時即將該漫畫移到清單最下面,等待重新下載。

頁碼位數:
1:[1.jpg,2.jpg..] 3:[001.jpg,002.jpg..]


檔案位址:
https://drive.google.com/file/d/0B6Btq693utJPTDh1cFFQSVNDcWs/view?usp=sharing





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


隨筆:
把下載器發到ptt後得到不少意見回饋,就趁些空檔時間將這些功能實作上去了。
另外有網友問會不會開源,答案是會,可是不會是這個版本,這個下載器是我以前邊摸索邊學做出來的小玩意,所以code有點dirty(自己看是沒問題,給別人看就大大有問題了...)。

等畢業的事確定定下來,會把整個code用JAVA重寫過並開源出去,而現在的話...
就讓我先繼續被作業跟研究進度追著跑吧~!!!


2016年4月10日 星期日

MahoMangaDownloaderVer1.6更新

版本:Ver1.6

支援漫畫網站:
http://www.99comic.com/
http://www.8comic.com/(http://www.comicbus.com/)
紳士網&EX紳士網

支援批次功能,但不提供多執行緒下載(請多珍惜各個資源網站)。

要下載EX紳士網的資源,必須先設置一次Cookie(選單->設置Cookie->輸入帳密),產生Cookie檔後即可下載EX資源,之後皆不需重新設置。

支援搜尋功能,但預設只輸出日文,中文,英文資源。

對應系統:
Windows (.netframework4.5)

更新內容:
修正www.8comic.com/網域跳轉問題(comicvip -> comicbus)


檔案位置:
https://drive.google.com/file/d/0B6Btq693utJPT19nVGNOX0FmWDQ/view?usp=sharing


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



隨筆:
這學期一堆事要忙,至少今天給自己放個假做想做的事...
原本是打算將下載器改用JAVA整個重寫並開源出來,不過照這忙碌程度,可能得暑假才能開始動工了OTL