HalfElf_MaruCrawler (1.30 ver.).z01

HalfElf_MaruCrawler (1.30 ver.).z02

HalfElf_MaruCrawler (1.30 ver.).zip


* 본 블로그 관리자는 프로그램이나 소스코드를 사용 및 악용하여 발생하는 문제에 대해 어떠한 책임도 지지 않습니다.


[ 업데이트 내용 ]


+ 다운로드 안정화

=> 간혹 에피소드 하나가 통째로 받아지지 않던 문제를 해결했습니다.

+ 다운로드 방식 개선

=> 특정 화나 특정 만화가 폴더만 생성되고 만화가 다운받아지지 않던 문제를 해결했습니다. 또한 몇장만 다운받아지고 이후 다운로드가 진행되지 않던 문제도 개선되었습니다. 1.21 버전으로 패치 이후 다운로드가 안 되던 문제를 해결했습니다.



좀 크게 업데이트되어 1.30으로 버전을 올립니다.

나름 안정되었으니 사용 후 버그 제보 부탁드립니다.


1월 5일자 버그는 최신버전 1.40버전에서 수정되었습니다.

다음 글에서 확인하시기 바랍니다.

블로그 이미지

HalfElf

평범하게 직장 다니는 IT업계 종사자. 디자인은 못하더라도 개발은 하고 싶어!

,



HalfElf_MaruCrawler (1.21 ver.).z01

HalfElf_MaruCrawler (1.21 ver.).z02

HalfElf_MaruCrawler (1.21 ver.).zip


* 본 블로그 관리자는 프로그램이나 소스코드를 사용 및 악용하여 발생하는 문제에 대해 어떠한 책임도 지지 않습니다.


 [ 업데이트 내용 ]


+ 최근 다운로드 도중 나던 에러 수정

+ 다운로드 방식 변경 (img -> a)


이번엔 좀 간단한 업데이트였습니다.

최근 갑자기 다른 다운로더들도 작동하지 않는다는 말을 들었는데 정말로 제대로 작동하지 않아서 수정하였습니다.



이제 귀찮은 관계로 최신 버전을 하나하나 링크 걸지 않으려고 합니다.

원하는 사람이 있으면 직접 와서 받아가겠지요.

블로그 이미지

HalfElf

평범하게 직장 다니는 IT업계 종사자. 디자인은 못하더라도 개발은 하고 싶어!

,

HalfElf_MaruCrawler (1.20 ver.).z01

HalfElf_MaruCrawler (1.20 ver.).z02

HalfElf_MaruCrawler (1.20 ver.).zip


* 본 블로그 관리자는 프로그램이나 소스코드를 사용 및 악용하여 발생하는 문제에 대해 어떠한 책임도 지지 않습니다.


(chrome창을 없애기 위해 PhantomJS를 사용하게 되어 부득이하게 용량이 늘어나 분할압축하였습니다)


 [ 업데이트 내용 ]


+ 에피소드 다운 시마다 등장했던 chrome 창 없이 백그라운드에서 다운로드가 진행되도록 수정



겨우 이 업데이트 뿐이지만 편의성이 꽤나 좋아졌으리라고 생각합니다.

원래 Multi-threading 방식이었던 것을 Multi-processing으로 변경할 생각이었으나 같은 곳에 I/O를 하는 것도 아니고 Context Switching 비용도 거의 없을 것 같고, 공유 메모리 처리 하는 것에 오히려 더 많은 노력과 비용이 들 것이라고 예상되어 다시 Multi-threading으로 변경하였습니다.


버그 및 개선했으면 하는 점은 댓글이나 방명록으로 부탁드립니다.




사용법 요약


1. 압축 풀고 HalfElf_MaruCrawler.exe 실행

2. 만화 id 입력, 엔터

(만화 id의 예시 : URL을 보면 나옵니다)

3. 원하는 Thread 수 입력, 엔터 (모르면 4)



블로그 이미지

HalfElf

평범하게 직장 다니는 IT업계 종사자. 디자인은 못하더라도 개발은 하고 싶어!

,




현재까지는 MaruCrawler 1.10까지 나온 상태이며, 조만간 1.20 버전을 공개할 예정입니다.


추가 및 개선사항은 다음과 같습니다.


1. 이제 더 이상 크롬 창이 뜨지 않습니다. 다운로드가 백그라운드에서 진행됩니다.

2. Multi-threading 방식에서 Multi-processing 방식으로 변경하였습니다. 다운로드 속도에 향상이 있을 것으로 예상됩니다.

(공유 메모리 문제가 발생하여 고치기 귀찮은 관계로 이전처럼 Multi-Threading 방식으로 가도록 하겠습니다.)



1번 기능같은 경우 많은 사람들이 원하던 것이라 편의성이 대폭 향상될 것으로 예상됩니다.


블로그 이미지

HalfElf

평범하게 직장 다니는 IT업계 종사자. 디자인은 못하더라도 개발은 하고 싶어!

,


MaruCrawler는 Python2 기반의 프로그램입니다.
소스로만 따지면 10KB 약간 넘어갈 뿐이지만 이는 컴파일 언어가 아니기 때문에 Python Interpreter가 없을 경우 일반 컴퓨터에서는 실행이 불가능합니다.
간단하게 말하면 프로그램의 소스코드를 실제 실행하기 위해서는 Python Interpreter라는 번역기가 필요하다는 거죠. 
따라서 Python이 설치되지 않은 일반 컴퓨터에서도 실행이 가능하게 하기 위해서 Python Interpreter와 소스 내에서 사용한 각종 라이브러리 파일도 함께 넣어서 exe 파일로 포팅할 필요가 있습니다.

저것도 7z로 압축해서 압축률이 꽤 높기 때문에 10MB를 넘지 않은거고, 실제 압축 풀면 프로그램은 거의 20MB정도 될 겁니다.


실행파일에조차 UPX 패킹을 통해 크기를 줄이려고 노력했습니다.


만약 업데이트가 좀 많이 진행되어서 도저히 크기를 더 줄일 수 없게 되면 다른 공유 방법을 알아봐야겠습니다.

블로그 이미지

HalfElf

평범하게 직장 다니는 IT업계 종사자. 디자인은 못하더라도 개발은 하고 싶어!

,

HalfElf_MaruCrawler (1.10 ver.).7z


* 본 블로그 관리자는 프로그램이나 소스코드를 사용 및 악용하여 발생하는 문제에 대해 어떠한 책임도 지지 않습니다.


  [ 업데이트 내용 ]


+ 에피소드별 폴더명이 000~999로 만들어지던 것을 marumaru에서 사용하는 에피소드명으로 생성되도록 개선

+ 일부 만화 안 받아지던 버그 수정

+ 파일명이 000~999로 만들어지던 것을 001부터 시작하도록 수정

+ 파일명에 /, ", ? 등 파일명으로 사용할 수 없는 문자가 있을 경우 해당 문자만 삭제하고 다운받도록 개선

ex) 'Fate / Stay Night' => 'Fate Stay Night'





사용방법은 1.00버전 참고하세요.


CUI라 불편하기 짝이 없을텐데도 댓글 달아주시는 분이 계시네요.

감사합니다.

회사 일도 바쁘고 그 외에도 할일이 많아 손대기가 쉽지가 않습니다, 후...


1.00버전에서 언급했다시피 비밀번호가 필요한 만화는 다운이 불가능하며, 타 블로그 등으로 리다이렉트되는 경우도 불가능합니다.

블로그 이미지

HalfElf

평범하게 직장 다니는 IT업계 종사자. 디자인은 못하더라도 개발은 하고 싶어!

,


* 본 블로그 관리자는 프로그램이나 소스코드를 사용 및 악용하여 발생하는 문제에 대해 어떠한 책임도 지지 않습니다.


HalfElf_MaruCrawler (1.00 ver.).7z



블로그에 처음으로 올리는 프로그램이네요.


marumaru.in 의 만화를 다운받는 프로그램인 MaruCrawler입니다. 

사실상 그냥 마루마루 다운로더이긴 합니다만, 편의성은 확실히 GUI보다 떨어지네요.

마루크롤러라고 부르시면 됩니다. 

죄송합니다, 디자인만큼 네이밍 센스도 부족합니다.


보통 마루마루 다운로더로 umaruGrab을 많이 사용하시던데 요즘은 잘 안된다고 하여 직접 제작해 보았습니다. GUI는 거의 절대로 만들 생각이 없으며 기능을 추가하더라도 콘솔 형태 그대로 갈 생각입니다. 디자인도 못하는 데다 GUI 만드는게 콘솔보다 백 배는 더 귀찮기 때문입니다. 

(성능 면에서도 콘솔이 훨씬 뛰어납니다)


하지만 이정도 기능으로도 우마루 엿먹이기는 충분할 것 같네요. 일단 다운로드 기능 하나는 확실히 되니까요.

모든 만화를 테스트 해 본게 아니기 때문에 확실하지는 않습니다.

따라서 사용해보시고 안되는게 있으면 제보 부탁드립니다.

평소부터 크롤링은 재밌어했는데 온갖걸로 다 막아둔 마루마루 크롤링이라니 이런 꿀잼이.

이제 이걸로 우마루 악덕짓은 좀 줄어들려나 모르겠습니다.


공지에 명시한 대로 프로그램의 소스는 공개하지 않습니다.

다시 명시한 대로 프로그램 내에 악성코드같은건 심지 않았습니다.


프로그램에 대한 문의사항, 버그 제보, 기능 건의 등은 댓글이나 방명록으로 부탁드립니다.


예의와 개념을 밥말아먹은 소리는 차단과 댓글삭제로 대응합니다.


==============================================


다음은 사용법입니다.

몇가지 유의할 사항이 있으므로 꼭 주의깊게 읽어주시기 바랍니다.



이 프로그램은 chrome 브라우저를 필수적으로 설치해야 사용이 가능합니다. 꼭 설치해주세요.


압축 파일 내에는 3개의 파일이 들어있습니다. 이 모두를 같은 폴더 내에 압축 해제해주세요.


실행할 프로그램은 HalfElf_MaruCrawler.exe 뿐입니다. 우마루 아이콘이 있을 겁니다. 나머지 두개는 건드리지 말고 그자리 그대로 놔둡니다. 특히 chromedriver.exe가 없을 경우 작동하지 않으니 주의하세요.


프로그램은 총 두 번에 걸쳐 입력을 받습니다.

첫 번째는 만화의 고유 id이며, 두 번째는 돌릴 Thread의 수입니다.

(Thread의 개념은 여기를 참고하시기 바랍니다)


만화의 아이디는 다음 이미지를 참고하시면 되겠습니다.

marumaru.in에서 각 만화의 페이지에 들어갔을 때 나오는 값입니다.


Thread에는 싱글코어 = 2, 듀얼코어 = 4, 쿼드코어 = 8 을 입력하시면 가장 무난합니다.

코어를 모르시겠다면 그냥 4를 입력해주세요.


이후 자동으로 MaruCrawler_Download 폴더 내에 만화 이름으로 폴더를 생성 후 다운받기 시작합니다.

진행 사항은 Episode 마다 한번씩 백분율로 나타내며 100%가 될 경우 최대 1~2분 후 프로그램이 자동 종료됩니다.


여기서 중요한 것이, 이 크롤러는 크롬 브라우저를 기반으로 작동하기 때문에 크롤링을 위해 Episode 하나당 크롬 창이 한번 잠깐 떴다가 닫히기를 반복합니다. 이는 절대 건드리지 말고 내버려둡시다. 차후 크롬이 뜨지 않게 다른 방법을 사용할 수도 있겠지만 현재는 예정에 없습니다.


프로그램 진행 중 종료 방법은 그냥 X버튼을 누르는 것, 작업 관리자에서 종료하는 것 등 여러 가지가 있습니다만 그냥 종료하시면 알아서 다운로드는 멈춥니다.


이 프로그램은 이어받기를 지원합니다.

하지만 실행한다고 바로 이어받는 것이 아니고, 파일이 전부 정상적으로 존재하는지 확인을 위해 Episode마다 브라우저는 열리고 닫힙니다.

파일이 존재한다고 판단되면 바로바로 지나치므로 닫은 부분까지 진행률은 빠르게 올라갈 것입니다.


만약 예기치 않은 렉이나 오류로 인해 프로그램이 이미지를 다운받지 않고 멈춰 있다면, 1~2분 뒤 모니터 Thread가 이를 감지하고 프로그램을 재시작합니다. 이때는 MaruCrawler_Download 내에 생성된 latest 파일을 기반으로 만화를 다운받습니다. 이 파일은 하나밖에 생성이 되지 않기 때문에 동시에 만화를 받겠다고 이 프로그램을 여러 번 실행시키면 절대 안 됩니다.


굳이 어떻게든 여러 번 실행하고 싶다면 압축 푼 폴더째로 복사하여 다른 폴더로 옮긴 후 실행시키세요. 하지만 부작용은 책임 못 집니다.


이 프로그램은 각 에피소드의 제목을 가져오지 않고 순서대로 000~999까지 저장합니다. 따라서 외전이나 번외편, 특별편 등을 가릴 수 없습니다. 이는 차후 업데이트로 반영할 예정이니 참고 바랍니다.


+ 현재 수위가 높아 비밀번호가 필요한 만화의 경우 다운로드를 지원하지 않습니다. 아마 앞으로도 그럴 가능성이 높습니다.

+ 파일의 재배포는 허용하지 않습니다, 블로그 링크 걸어주세요.

+ 현재 폴더명에 전혀 필터링을 하지 않아 ?나 /등 파일명에 들어갈 수 없는 문자가 포함된 만화는 다운받을 수 없습니다, 차후 업데이트 예정입니다.

블로그 이미지

HalfElf

평범하게 직장 다니는 IT업계 종사자. 디자인은 못하더라도 개발은 하고 싶어!

,