웹툰 이미지 내려받기 (feat. 덴경대)



덴경대

몇몇 즐겨보는 웹툰이 있지만, 시간 맞춰 챙겨보진 않는다. 보통 주말에 시간이 나고, 빈둥거릴 기회가 생기면 소파에 누워 못 본 회차들을 챙겨보는 여유를 누린다. 그러나 예외가 있으니, 바로 양영순 작가의 덴마다. 덴경대 수준까지는 아니지만, 가능하면 연재일에 찾아서 보는 편이다. 

덴마에는 떡밥(?)이라던가, 지나간 회차에 숨겨진 복선, 또는 연결되는 내용이 얽혀 있다. 2010년부터 연재가 시작되었고, 중간에 1년여 간의 연재 중단도 있었던 터라, 내용 정리를 위해 가끔 정주행이 필요하다. 조만간 정주행을 한 번 할까 생각 중이었는데, Python을 익힌 김에 웹툰 이미지를 1회차부터 내려받는 걸 만들어보기로 했다. 


네이버 웹툰: 덴마 URL 분석

먼저 네이버 웹툰 URL을 확인했다.

  • 1회   : http://comic.naver.com/webtoon/detail.nhn?titleId=119874&no=1&weekday=tue
  • 877회: http://comic.naver.com/webtoon/detail.nhn?titleId=119874&no=877&weekday=tue
  • 878회: http://comic.naver.com/webtoon/detail.nhn?titleId=119874&no=878&weekday=tue

titleId, no, weekday가 있다. 덴마의 titleId는 '119874', weekday는 'tue'로 고정이며, no만 회차 순으로 변경되고 있는 것을 확인할 수 있다. 


페이지 분석

각 회차를 불러왔을 때 실제 웹툰 이미지는 어떻게 불러오는 지 HTML을 통해 찾아봤다. img 태그에 이미지 경로가 있었고, 연재 초반에는 1개의 통 이미지였으나, 언젠가부터 3개의 이미지로 쪼개져 있는 것을 확인할 수 있었다. 웹툰 이미지가 있는 img 태그를 찾고, 그 소스 경로에서 이미지를 가져오면 될 것 같다. 


구현

urllib2를 이용하여 웹에 있는 리소스를 가져왔고, BeautifulSoup을 사용하여 html의 특정 태그를 추출했다. 세부 과정은 아래와 같이 구현했다. 

  1. urllib2를 이용하여 1회 차 웹툰의 html을 내려받는다.
  2. BeautifulSoup을 이용하여 웹툰 이미지가 있는 img 태그만을 추출한다. 
  3. img 태그의 소스 경로에서 이미지를 추출한다. 
  4. 이미지를 로컬에 저장한다. 

1회차부터 현재 회차까지 위 단계를 반복한다.


후기

url과 페이지를 분석한 후, 구글링하면서 이미지 경로를 확인하고 로컬에 저장하는 기능을 작성하는데 이삼십 분 정도 걸린 것 같다. 기능을 수정하고 다듬으면서 v 1.0을 만드는 데까지는 총 2시간 정도 걸린 것 같다. 코드는 단 16줄! 이렇게 간단하다니, 앞으로 코딩만 하는 개발자들은 긴장해야 할 것 같다. 

자바로 작성하는 것과 비교해 보자면, Python은 A4 이면지에 쓱쓱 스케치하듯이 페이지를 작성하는 느낌이 들었다. 자바라면 규격화된 제안서를 작성하는 느낌이 아니었을까 싶다. 


참고 

- Python 2.7.5

- virtualenv

(siesta) [root@C:\virtualenv\siesta]#pip list
beautifulsoup4 (4.5.0)
pip (8.1.2)
setuptools (24.3.0)
wheel (0.29.0)
 
(siesta) [root@C:\virtualenv\siesta]#
cs



댓글 쓰기

0 댓글