NoM 1.5 업데이트 - 웹 다운로드(만화 다운로드용)

NoM 2009. 1. 15. 13:59

<주의>

이 툴은 다운로드의 대상이 되는 웹 서버에 무리한 부하를 줄 수 있습니다.

이 툴을 악용하여 웹 서버에 피해가 발생하면 이는 전적으로 사용자의 책임 입니다.

이런 맥락에서 10,000 개 이상의 파일은 한 번에 다운로드 받을 수 없게 막혀 있습니다.

<설치>

이번 버전에서는 설치 방법에 많은 변화가 있었습니다.

 http://kimgwajang.tistory.com/142를 참고하세요.

<웹 다운로더>

image

웹 다운로더는 웹에 있는 파일을 일괄 다운로드 받는 툴 입니다.

예를 들어서 http://abc.com/001.jpg 부터 http://abc.com/100.jpg 까지 백 개의 그림 파일을 다운로드 받고자 한다면, 웹 다운로더를 사용하면 백 개의 주소를 일일히 웹 브라우저에서 입력할 필요 없이 간단한 조작만으로 다운로드 받을 수 있습니다.

 

실제 사용 예를 보면서 설명을 하도록 하겠습니다.

미션 : 일간 스포츠에서 (무료) 서비스하고 있는 야설록의 작품 '진혼검객'을 모두 다운 받아라. (130페이지 * 20권 == 2,600개의 그림 파일)

 

웹 다운로드 작업은 크게 두 단계로 이루어져 있습니다.

1. 일괄 다운로드할 주소(URL)들의 목록을 만듭니다.

2. 위 단계에서 만들어진 목록들을 순서대로 다운로드 받습니다.

 

2번 단계의 경우는 단순히 시작 버튼만 눌러주면 되는 간단한 일입니다만, 1번 단계는 조금 머리를 써야 합니다.

우리의 미션 같은 경우에는 2,600 개의 주소 목록이 필요한데, 이를 복사하기/붙여넣기하여 일부 수정하는 식으로 만들 수는 없지 않습니까.

그래서 웹 다운로더에는 매크로 라는 기능이 있는데, 이는 다운로드 받을 URL에서 # 라는 부분이 있으면 이를 연속되는 숫자로 치환하여 각 주소를 생성해내는 기능입니다.

예를 들어 http://abc.com/#.jpg URL에는 매크로가 들어 있는데, 여기서 #는 나중에 1 부터 10까지로 치환이 됩니다. (물론 치화되는 값은 매크로의 숫자에 따라 다릅니다.)

그렇다면 결과적으로 우리는 http://abc.com/1.jpg, http://abc.com/2.jpg, http://abc.com/10.jpg ... 같은 목록을 얻게 되는 것입니다.

 

또한 두 개 이상의 매크로를 중첩하여 사용할 수도 있습니다.

이번에는 http://abc.com/#/#.jpg를 예로 들어 볼까요.

보시다시피 매크로 기호인 #가 두 개 있습니다. 이 때 첫번재 매크로가 1 ~ 2, 두번재 매크로가 3 ~ 4로 설정되어 있다면, 결과적으로 우리는 아래 네 개의 URL을 얻게 됩니다.

http://abc.com/1/3.jpg

http://abc.com/1/4.jpg

http://abc.com/2/3.jpg

http://abc.com/1/4.jpg

 

다시 미션으로 돌아가서 생각을 해봅시다.

위에서 한 이야기에 의하면 우리가 해야 할 일은,

1. 진혼검객의 그림 파일 2,600개에 대한 URL 목록을 만들어야 합니다. 이때 각 주소의 규칙을 찾아내어 매크로를 사용하면 아주 편리합니다.

2. 만들어진 URL목록을 다운로드 합니다.

 

1번 작업부터 해봅시다.

2,600개 그림 파일의 주소에는 아마도 규칙성이 있을 것입니다.

일단 그림 파일 몇 개의 주소를 알아 봅시다.

웹에서 진혼검객 1권의 첫 번째 페이지를 봅니다.

image

그림 파일에서 마우스 우클릭한 후 속성을 선택합니다.

image

등록 정보를 보면 그림 파일의 주소를 알 수 있습니다. 여기서는 http://coimg.joins.com/진혼검객/001/001.jpg 임을 알 수 있습니다.

마찬가지로 몇 페이지의 넘겨 가며 그림 파일의 주소를 몇 개 더 모아 봅니다. 아래는 이런 방식으로 모은 주소들입니다.

http://coimg.joins.com/진혼검객/001/001.jpg

http://coimg.joins.com/진혼검객/001/002.jpg

http://coimg.joins.com/진혼검객/001/003.jpg

아 이런 참, 일간 스포츠는 그림 파일의 주소를 너무나 친절하고 예쁘게 매겨 놓았군요.

금방 눈치 채셨겠지만 여기의 규칙은 다음과 같습니다.

http://coimg.joins.com/진혼검객/권 번호/페이지 번호.jpg

그렇다면 결국 굵은 글씨로 된 부분(권 번호, 페이지 번호)을 아래와 같이 매크로로 바꾸면 2,600개의 주소를 모두 알 수 있겠습니다.

http://coimg.joins.com/진혼검객/#/#.jpg

 

여기서 두 가지 의문이 들 것입니다.

1. 권 번호야 20권으로 고정되어 있지만, 각 권의 페이지 수는 일정하지 않을 수 있습니다.

--> 맞는 말입니다. 웹에서 만화를 주욱 보시면 아시겠지만, 각 권은 대략 130 페이지 내외로 구성되어 있습니다.

그렇다면 페이지 번호는 1 부터 시작해서 어디까지 반복해야 하는 것일까요?

답은 넉넉하게 큰 숫자로 지정하면 된다는 것입니다.

각 권이 대략 130페이지니까 우리는 150 정도로 지정하겠습니다.

이에 관한 이야기는 뒤에서 좀 더 자세히 말씀드리겠습니다.

2. 권 번호와 페이지 번호의 자릿수가 세 자리로 고정되어 있습니다. 그래서 권 번호의 경우 1 ~ 20 을 반복하는 것이 아니고 001 ~ 020 을 반복하여야 합니다.

--> 예리한 지적입니다. 이 문제는 웹 다운로더를 직접 보면서 설명하도록 하겠습니다.

 

이제 NoM을 실행시키고 도구 상자에서 웹 다운로더를 클릭합니다.

image

1. 매크로가 포함된 다운로드 주소를 입력하는 곳입니다.

2. 각 매크로의 설정을 조정합니다. 이 상자의 수는 다운로드 주소에 포함된 매크로 갯수(#의 갯수) 만큼 자동으로 늘어나거나 줄어듭니다.

3. 목록을 만들거나 다운로드를 시작합니다. 또한 다운로드가 시작되었으면 이를 중지할 수도 있습니다.

4. 다운로드 진행 상황을 나타냅니다.

5. 매크로에 의해 치환된 목록이 표시됩니다.

 

먼저 다운로드 주소에 위에서 생각해 낸 주소(http://coimg.joins.com/진혼검객/#/#.jpg)를 입력합니다.

매크로(#)가 두 개 있기 대문에 매크로 상자도 두 개가 나타납니다.

매크로의 이름은 주소에서 왼쪽 -> 오른쪽 순으로 매크로 1, 매크로 2라고 부르겠습니다.

(따라서 매크로 1은 권 번호이고, 매크로 2는 페이지 번호 입니다.)

 

지금부터는 각 매크로를 설정해 봅시다.

먼저 매크로 1(권 번호)을 보겠습니다.

image

우리는 001 ~ 020 을 만들어 내야 합니다.

그렇다면 설정을 아래와 같이 해야겠네요.

image

미리보기를 눌러 값이 제대로 나왔는지 확인합니다.

image

앗, 001 과 같이 세 자리로 나와야 하는데 한 자리로 표시됩니다.

이번에는 빈 자리를 0으로 채웁니다 옵션을 켜고 총 자리 수를 3으로 설정합니다.

image

원하는 결과가 나왔습니다.

매크로 2(페이지 번호)의 설정도 대동소이합니다.

image

마지막 번호만 150으로 변경해주면 되겠습니다.

 

이제 다운로드 상자에 있는 목록 만들기 클릭하여 목록을 만들어 봅시다.

image

잠시 기다리면 아래와 같이 매크로에 의해 생성된 URL이 화면 우측에 표시됩니다.

image

여기서는 20권 * 150페이지 이므로 3,000개의 주소가 만들어졌습니다.

주소를 확인했으면 이제 시작을 누르고 파일을 저장할 폴더를 지정한 후 대망의 다운로드를 시작합니다.

image

image

image

1. 다운로드된 파일은 주소 왼쪽에 체크 표시가 켜집니다.

2. 다운로드 진행 상황을 %와 '다운 받은 파일 수 / 전체 파일 수' 형식으로 표시합니다.

 

다운로드 받은 파일은 위에서 지정한 폴더에 순차적인 번호가 매겨진 상태로 들어 있습니다.

 

마지막 페이지 번호를 알 수 없는 문제와 관련하여 아래 스샷을 보시기 바랍니다.

image

1권의 124 페이지까지는 다운을 받았지만, 이후 부터는 다운을 못받고 2권의 1페이지부터 다시 다운을 받기 시작했습니다.

이 말은 http://coimg.joins.com/진혼검객/001/125.jpg 부터 http://coimg.joins.com/진혼검객/001/150.jpg 에 해당하는 파일이 서버에 없다는 의미입니다.

따라서 페이지의 마지막 번호를 알 수 없거나 번호가 일정하지 않을때는 넉넉하게 큰 값으로 지정해 놓으면, 해당 파일이 서버에 존재하지 않아도 무시하고 넘어가기 때문에 문제가 없습니다.

: