MaruCrawler.vol1.egg

MaruCrawler.vol2.egg

MaruCrawler.vol3.egg



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


[ 업데이트 내용 ]


+ 2017년 12월 29일 이후 만화가 다운받아지지 않던 문제를 해결했습니다.


+ 특정 만화의 특정 에피소드가 'cp949' 인코딩 에러가 나던 문제를 해결하였습니다.

=> 에피소드 제목에 '\ufeff' 문자열이 들어있어 이를 replacing 하는것으로 해결했습니다.



Github : https://github.com/KiririnLover/MaruCrawler



 안녕하세요, 2018년에도 새해 복 많이 받으세요.


오랜만에 버그픽스입니다.

만화 한두개가 안되는 것도 아니고 전체가 다 다운받아지지 않는 증상이 나타난다고 하여 퇴근 후 바로 버그 수정했습니다.


고치는 김에 cp949 인코딩 에러 문제도 하나 더 수정해서 올립니다.


+ 버그 제보 댓글에는 '만화 ID'는 꼭 명시해 주시고 가능하다면 에러 내용도 같이 복사하여 넣어주시면 빠른 버그픽스에 큰 도움이 됩니다.


버그 제보 및 감사 댓글 언제나 고맙습니다.

블로그 이미지

HalfElf

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

,


MaruCrawler.vol1.egg

MaruCrawler.vol2.egg

MaruCrawler.vol3.egg


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


[ 업데이트 내용 ]


+ 특정 만화의 특정 에피소드가 'cp949' 인코딩 에러가 나던 문제를 해결하였습니다.

=> 에피소드 제목에 '\u2013' 문자열이 들어있어 이를 replacing 하는것으로 해결했습니다.


+ 기존에 하나씩밖에 다운로드 받지 못했던 만화를 여러 개 연속하여 받을 수 있도록 개선했습니다.

=> 원하는 만화 ID를 미리 찾아두고 기존과 동일하게 사용하되, 만화 ID 입력시 콤마(,)를 구분자로 하여 한번에 전부 입력해주세요. 아래의 예시대로 할 경우 1111, 2222, 3333, 4444를 연속하여 다운받습니다.

(예: 1111, 2222, 3333, 4444)


+ 17년 10월 15일 기준으로 다운로드가 정상적으로 되지 않던 문제를 해결했습니다.

=> 만화 URL이 조금 바뀌어 정상적으로 찾지 못하는 문제가 있었습니다. 이제 해결되었으니 정상작동할 것으로 보입니다.


Github : https://github.com/KiririnLover/MaruCrawler


안녕하세요, 오랜만에 업데이트하네요.

한동안 일도 바쁘고 업데이트 없이도 별 문제 없는 것 같아 방치하고 있었는데 댓글이 많아 업데이트를 진행하였습니다.


만들다 보니 기능 추가 요청이 상당히 많이 들어오고 있습니다.


예를 들면 에피소드별 다운로드라던지...


이런 기능의 경우 커맨드라인 기반 프로그램으로는 상당히 한계가 보여 GUI도 고려해보려고 합니다. 어디까지나 '고려'이고 만드는 데 상당히 힘들 것이 눈에 선히 보이기 때문에 얼마나 걸려 완성할 수 있을지는 장담하기 힘듭니다. 그냥 그런가보다 해주시면 되겠습니다.


버그 제보 및 감사 댓글 언제나 고맙습니다.

블로그 이미지

HalfElf

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

,

MaruCrawler.vol1.egg

MaruCrawler.vol2.egg

MaruCrawler.vol3.egg


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


[ 업데이트 내용 ]


+ 특정 만화의 특정 에피소드가 'cp949' 인코딩 에러가 나던 문제를 해결하였습니다.

=> 에피소드 제목에 '\xa0' 문자열이 들어있어 이를 replacing 하는것으로 해결했습니다.


+ 특정 에피소드 이후로 통째로 받아지지 않는 문제를 해결했습니다.

=> 404에러 핸들링을 해두고 추가 처리를 해두지 않았던 문제였습니다. 이번 버전에서 해결되었고, 해당 에피소드를 스킵하고 다음 에피소드로 계속해서 다운받습니다.


Github : https://github.com/KiririnLover/MaruCrawler


버그 제보 감사합니다~

블로그 이미지

HalfElf

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

,



MaruCrawler.vol1.egg

MaruCrawler.vol2.egg

MaruCrawler.vol3.egg


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


오랜만의 릴리즈인데다 좀 크게 변한것도 있어 (겉으로 티는 안나지만) 2.00으로 버전업하였습니다.


변한 내용은 ( http://shelter-of-halfelf.tistory.com/21 ) 참고...


그 외에도 댓글로 특정 만화가 다운받아지지 않는다고 하여 처리하였습니다.

단순한 URL 인코딩 문제였던 것으로 보입니다.


 사용법은 전과 거의 동일하지만, 만화 id를 입력하기 전에 메뉴가 하나 생겼습니다. 단순히 만화를 다운받으려면 1번을, 기존에 다운받은 만화를 업데이트하려면 2번을 누르고 엔터쳐주시면 됩니다. 만화를 다운받는 것이 완료되면 프로그램은 자동으로 종료되며, 업데이트는 현재 마루마루에 올라온 에피소드 중 없는 것을 자동으로 찾아서 다운받는 것이기 때문에 최신 에피소드가 업데이트되거나 기존 에피소드를 삭제 후 돌리면 해당 에피소드를 자동으로 다운로드합니다.


아, 그리고 2.00버전부터 프로그램 소스를 공개하기로 결정했습니다.

Github : https://github.com/KiririnLover/MaruCrawler
참고하시면 되겠습니다.


버그는 댓글로 부탁드립니다~

블로그 이미지

HalfElf

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

,


한 반년 가까이 잠수타다가(...) 돌아왔습니다.


일때문에 바쁜것도 맞긴 하지만 이걸 계속해서 의미가 있나 싶기도 하고 한동안 업데이트도 못했기에 댓글로 욕먹진 않았을까 싶기도 해서 들어오는걸 피했었네요.


여전히 안막히고 잘 사용되고 있는 것 같아 다행입니다.


MaruCrawler 1.XX 버전은 사실 실력도 부족한 상태에서 조잡하게 설계해서 만들었기 때문에 상당히 불안정하고 불편한 프로그램이었습니다.


곧 공개할 MaruCrawler 2.X 버전에서 바뀔 점을 몇가지 적고 마치겠습니다.


- Multi-thread 방식에서 Multi-process로 전환

 이 말을 이해할 사람이 몇이나 될지 모르겠지만 (컴퓨터 전공이시라면 아실 겁니다) 우선 설명드리자면, 이 MaruCrawler를 만드는데 사용한 Python이라는 언어는 Threading의 효율이 무척이나 떨어집니다. 따라서 효율적인 분산 처리를 위해서는 Multi-process를 사용하는 것이 좋습니다. 이번에 대규모로 개편하면서 공유 메모리를 사용하여 Task Queue를 만들고 이를 이용해 Multi-process를 구현했습니다.

 이로 인해 속도 및 안정성이 비약적으로 상승했습니다.


- Python 2.7에서 Python 3.6으로 언어 변경

 프로그래밍에 사용한 Python 2.7 을 Python 3.6으로 변경하였습니다. 아실 분은 아시겠지만 Python 2.7와 Python 3.6은 문법은 거의 같다시피 하지만 유니코드 지원 등 여러 모로 다른 점이 많습니다.

 이로 인해 유니코드 처리 등이 편해져 버그 발생율이 감소하였습니다.


- Logging 기능 추가

 기존에는 콘솔창에 메시지만 떠서 어떻게 저에게 제보해야 할지 모르겠다는 분들이 계셨습니다. 이번에는 Python의 logging 모듈을 이용하여 에러나 메시지 발생 시 가능한 전부 로깅하도록 하였으므로 버그가 났을 경우 대략적인 상황과 함께 logs 폴더 내부의 로그 파일을 제 메일로 보내주시면 간단하게 문제 해결에 큰 도움이 됩니다.


- 프로그램 소스 공개

지금은 아직 공개할 수 없지만 곧 프로그램을 공개하면서 프로그램 소스도 함께 공개할 예정입니다. Github을 사용하여 공개할 예정이며 라이센스는 CC BY-NC 3.0 입니다.

 라이센스에 관한 자세한 내용은 여기를 참고하시기 바랍니다.



사실 위 항목 중 마지막 소스 공개만 제외하고는 이미 전부 구현된 상태입니다. 맘같아선 더 개발하고 자고 싶지만 출근시간도 있고 하니 이만 적고 자러 가야겠네요 (._.

가능한 빨리 돌아올 수 있도록 노력하겠습니다.



* 댓글 하나하나 다 읽어보고 있습니다. 격려하고 감사 표하는 댓글 정말 힘이 됩니다. 감사합니다.

블로그 이미지

HalfElf

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

,

HalfElf_MaruCrawler (1.43 ver.).z01

HalfElf_MaruCrawler (1.43 ver.).z02

HalfElf_MaruCrawler (1.43 ver.).zip


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


[ 업데이트 내용 ]


+ 특정 에피소드의 몇 장만 받아지고 이후 전부 다운받아지지 않는 문제를 해결했습니다.


+ 특정 에피소드가 통째로 받아지지 않는 문제를 해결했습니다.

=> 만화 자체가 404 에러로 마루마루 서버측의 문제가 있는 상태였습니다. 같은 문제가 발생할 경우 해당 에피소드를 스킵하고 다운로드를 계속 진행하도록 개선해 두었습니다.


[ 사용법 ]

(클릭하면 커집니다)


 만화 ID의 경우 업데이트된 한 화가 아니라 전 화가 모두 나와 있는 주소에서 찾으셔야 합니다.


http://shelter-of-halfelf.tistory.com/19

여기서 말씀드린 업데이트 내용은 대규모 개편작업이 필요하기 때문에 버전 2로 업그레이드하면서 반영될 것으로 보입니다.


 버그가 발견되면 댓글이나 방명록 등으로 제보 바랍니다.

모두 새해 복 많이 받으세요~

블로그 이미지

HalfElf

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

,


 전부터 필요하다고 느끼던 기능 몇 가지를 추가할 예정입니다.


 < 꼭 들어갈 기능 >


- 최신화만 다운로드

 다운로드 폴더 내에 이미 해당 만화가 존재할 경우 폴더명을 확인하여 없는 폴더만 다운로드하는 기능을 추가할 예정입니다. 정확히는 '없는 에피소드'를 다운로드하는 것이기 때문에 이미 다운받았더라도 폴더명을 임의로 바꾸거나 지운다면 추가로 다시 받아집니다.


- 선택한 특정 화만 다운로드

 숫자(offset 기반으로 하기 때문에 에피소드 앞에서부터 순서대로 순번을 붙여 처리합니다) 또는 문자(예 : 마기 18화)를 통해 처리합니다. '~' 기호를 이용해 범위 지정 다운로드가 가능하도록 지원할 예정입니다. 이 기능은 이 다음에 서술할 목록 기반 다운로드에서만 사용 가능합니다.


- 만화 목록 기반 다운로드

 지금까지는 각 만화의 고유 ID값을 직접 입력해서 다운받았지만, 여러 만화를 받을 때 직접 하나하나 다 입력해줘야 하는 불편함이 있어 이를 개선하기 위해 만화 ID로 목록을 작성하고, 이를 읽어서 자동으로 다 다운받는 기능을 추가하려고 합니다. 위의 특정 화만 다운로드나 최신화만 다운로드 기능도 물론 동시에 사용 가능하도록 개발할 예정입니다.



 < 넣고 싶지만 실현이 불확실한 기능 >


- 검색 다운로드 기능

 만화 ID를 찾기 위해 결국 마루마루에 접속해야 한다는 불편한 점이 있었는데, 이를 개선하기 위해 키워드로 만화를 검색하고 자동으로 다운받아 주는 기능을 추가하고 싶습니다. 이게 성공한다면 위의 '만화 목록 기반 다운로드'와 연계하여 사용이 가능할 것으로 보입니다.



 위 작업을 진행하면서 지금까지 상당히 더러워진 코드를 리팩토링할 예정인데, 그러면서 만약 잘 진행된다면 소스코드를 공개하게 될 수도 있을 듯 합니다. 공개 방식은 Github가 될 수도 있고 소스코드 자체를 여기에 업로드하는 방식이 될 수도 있습니다. 리팩토링에 시간이 좀 걸릴 수 있기 때문에 버그 수정 외에 저 기능이 추가된 Stable한 버전은 언제 개발되어 업로드가 가능할지 장담할 수 없습니다.


 혹시 추가로 필요한 기능이나 버그 등의 문제가 있으면 언제든 댓글로 알려주시기 바랍니다.

블로그 이미지

HalfElf

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

,

HalfElf_MaruCrawler (1.42 ver.).z01

HalfElf_MaruCrawler (1.42 ver.).z02

HalfElf_MaruCrawler (1.42 ver.).zip


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


[ 업데이트 내용 ]


+ 에피소드의 이름에서 특정 문자가 삭제되어 부정확하게 받아지는 문제를 해결했습니다.

=> 크게 불편하지는 않지만 12.5화 등이 125화가 되어 버리는 경우가 있어 수정하였습니다.



[ 사용법 ]

(클릭하면 커집니다)


 만화 ID의 경우 업데이트된 한 화가 아니라 전 화가 모두 나와 있는 주소에서 찾으셔야 합니다.


 버그가 발견되면 댓글이나 방명록 등으로 제보 바랍니다.

블로그 이미지

HalfElf

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

,

 500 Internal Server Error 나는걸 보니 내부 소스 작성에 실수를 했다던가 DB가 죽었다거나 혹은 해킹을 당했다거나 여러가지 이유가 있을수는 있는데... 그런 상황이라 현재는 버그 확인이 불가능합니다. 툴 사용도 아마 안 될겁니다.

'잡담' 카테고리의 다른 글

볼만한 애니가 이리 없다니  (1) 2016.10.20
역시 파이썬은...  (0) 2016.10.19
사실 네이버 블로그도 했었는데  (0) 2016.10.07
회사 일도 바쁘고 힘든데...  (0) 2016.10.07
MaruCrawler 제작중입니다  (0) 2016.10.06
블로그 이미지

HalfElf

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

,

HalfElf_MaruCrawler (1.41 ver.).z01

HalfElf_MaruCrawler (1.41 ver.).z02

HalfElf_MaruCrawler (1.41 ver.).zip


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


[ 업데이트 내용 ]


+ 일부 만화의 특정 화수가 다운 안되는 문제 수정

=> URL Encoding의 문제였습니다. 간단한 거라 금방 수정했습니다.


[ 사용법 ]

(클릭하면 커집니다)


 만화 ID의 경우 업데이트된 한 화가 아니라 전 화가 모두 나와 있는 주소에서 찾으셔야 합니다.


 버그가 발견되면 댓글이나 방명록 등으로 제보 바랍니다.

블로그 이미지

HalfElf

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

,