· 톺아보기

PC/모바일

파이썬 강좌? 멜론 Top 100 차트 내용 추출하기

케이준감자튀김 ·

조회 25,553 · 공감 5 · 댓글 25

안녕하세요,

 

멜론 차트 추출하기를 주제로 써 보았습니다. 이번엔 간단해요. 소스 코드도 엄청 짧구요.

 

나름 쓸모있는 듯 해도 별 쓰잘데 없는 그런 프로그램,

뭔가 잡다하지만 나름은 쓸모있을 듯하기도 한 문서,

 

그런게 딱 제 스타일입니다.

부담 없이 보아 주셨으면 합니다.

 

낚시(?)를 위해 시작 부분만 따로 여기에 올립니다. 나머지 내용은 링크의 PDF에서 보실 수 있습니다. 로그인하지 않으신 분들이나 모바일로 클리앙에 접속하시는 분들도 PDF를 쉽게 볼 수 있도록 링크를 걸었습니다. 첨부 파일이 업로드 되지 않아 링크로만 게시하도록 하겠습니다.

 


 

====== 멜론 Top 100 차트 내용 추출하기======

이번에는 아주 간단한 내용입니다.

국내 음원유통사의 하나인 멜론 차트의 내용을 추출하는 방법을 다루고자 합니다. 일단 멜론 차트의 내용을 추출, 가공했을 때 얻을 수 있는 건 무엇일까요? 일단 겉모양을 쏙 빼고 알짜(콘텐츠)만 있기 때문에 다른 식으로 활용하기 좋습니다. 차트를 바탕으로 어떤 조사를 한다든지, 나름대로의 집계를 할 때 좋을 것입니다. 물론 멜론 가요 차트는 한 예입니다. 이 문서가 보여주는 방법 자체를 응용한다면 웹에 있는 여러 자료(data)를 추출, 가공하여 유용한 정보(information)로 활용하는 것이 가능합니다.

개인적인 의견입니다만, 멜론 웹사이트에는 뭔가 덕지덕지 붙어있는 것이 너무 많습니다. 차트 자체에 눈이 집중되지 않고 산만합니다. 차트 정보만 분석할 목적이라면 본 스크립트를 통해 정보를 받아 엑셀로 보는 게 더 나아 보입니다.

** 이 문서는 2013년 01월의 멜론 웹페이지를 대상으로 하였습니다. 멜론 웹사이트의 개편 등으로 인해 HTML 문서 구조는 변경될 수 있습니다. **

===== 기반 지식 =====

이번에 설명하려는 기반 사항은 매우 단순합니다.

==== 웹 크롤링 ====
지난번 '네이버 웹툰 저장하기' 문서에서 거의 다 언급하였습니다. 그 문서와 이번 문서에서 하려는 내용은 근본적으로는 동일합니다. 다만 지난번에는 정규식을 사용하여 HTML 문서에서 단순하게 링크만을 추출하는 것이 작업의 전부였다면, 이번에는 HTML 문서의 구조를 조금 더 파헤치는 것이 다릅니다. 이렇게 웹에 있는 문서를 수집 분석하는 것은 검색 엔진이 기본적으로 하는 일 중 하나입니다. 이런 것을 '웹 크롤링 (web crawling)'이라고 합니다. 우리가 하는 일은 이 웹 크롤링과 유사합니다만, 특정 목적이 강하지요.

==== CSV (Comma-Separated Values) 파일 ====

'CSV'라는 용어를 미리 언급하고 넘어가겠습니다.그냥 텍스트 파일이라고 생각하시면 됩니다! 엑셀 같은 스프레드 시트(spread sheet)프로그램이 읽고 쓰는 파일 목록 중 하나입니다...

댓글 25

  1. 흙기사 ·
    이런건 코딩보다 저렇게 설명 쓰는데 5배쯤 시간이 많이 걸리는데, 수고하셨습니다! ㅋㅋㅋ
    웹에서 필요한 내용 긁어오는 용도로 파이썬 정말 편한거 같아요.
  2. edge ·
    elementtree+xpath가 html 처리의 정석이긴해도 BeautifulSoup이 확실히 편한거 같더군요.
    에러가 있는 html도 왠만한건 다 처리해주고.
  3. 북북 ·
    +1
  4. _Jun ·
    전 파이썬은 안써버릇해서 잘 몰랐는데..
    잘 보겠습니다!
    전 node.js + node-jquery 조합 쓰는데 간편하고 좋아요
  5. newtype ·
    node.js + node-jquery 강좌 기대하겠습니다.
    관심이 많아요!
  6. weever ·
    오호~~ 기다렸던 강좌입니다~~
    파이썬을 공부하려던 궁극적인 목적이 나왔군요 ㅎㅎ
    감사!!
  7. 라이크유 ·
    와우 좋은 강좌 감사합니다. 필력이 있으시네요. 조만간 오랜만에 파이썬 관련 책니 한권 나올꺼 같습니다^^ 결혼만 안했어도 좀 삽질해보고 싶네요 ㅎ *
  8. newtype ·
    좋은 강좌 감사드립니다. ^^
  9. 기타사외유출 ·
    저도 돌리는 사이트 특성상 크롤링이 중요한데 잘 보겠습니다!
    지금은 PHP + SIMPLE HTML DOM PARSER 로 크롤링해서 DB에 넣은 뒤에 DB -> JSON 으로 뿌려주는 PHP 를 만들어서 자바스크립트로 호출해서 동적으로 뿌려주고 있네요
  10. edge ·
    PHP의 simple_dom + mb_ereg 보다 Python의 BeautifulSoup + regex 조합이 훨씬 강력하더군요.
  11. 타스케 ·
    BS에 +1
  12. 흙_ ·
    강좌글과 연관없는 질문 하나 드려도 될까요? 이번에 파이썬을 배워보려하는데 2.x기준으로 배워야할지 3.x기준으로 배워야할지 잘 판단이 안서네요 2.x에서 작업하시다가 3.x로 넘어가신분 혹시 계신가요?
  13. 바나나쥬스 ·
    3.x가 나온지 몇년이 됐는데도, 대부분 사람들은 2.x을 쓰고 있습니다 ... 그리고 넘어갈 생각들을 안하고 있죠.

    무조건~ 2.x으로 시작하세요.
  14. Afri ·
    몇몇 부분에서 애로사항이 좀 있어요. 파이썬 2.x 로 만든 zip 파일 풀때 파일명 인코딩 맞춰서 푸는 간단한 스크립트를 파이썬 3.x 로 바꾸려고 삽질했는데, 도저히 2.x 처럼 간단하게는 안되더군요. 유니코드 관련 내부적으로는 더 깔끔해졌는데 기능/편의성 측면으로는 아직 잘 모르겠습니다.
  15. 흙_ ·
    답변 감사합니다 ㅎㅎ 2. 버전으로 시작해야겠네요 ㅎㅎ
  16. 사.랑 ·
    좋은 글 감사합니다.
  17. SMOOTHIE ·
    일단 추천부터;;; 허겁지겁;;; =3==3=3=33
  18. 힘내라아빠 ·
    감사합니다!
  19. Montblanc ·
    고맙습니다. 글 쓰신 분 근처에 계시면 밥 대접하고 싶음. 이런 분들은 나라에서 상 드려야 함.
  20. 미생공 ·
    파이썬 공부한다고 하면서 주제 잡기가 에매한데 참 고맙습니다.
    이런분들이 사회에서 좋은 대접을 많이 받는 분위기가 이루어 져야 하는데요
    복 많이 받으세요 ^^*
  21. 얼룩고양이 ·
    nodejs + node-jquery + yql로 가사 검색하는 CLI 만들었었는데... 그런거 같이 붙이면 재밌겠네요 ㅎㅎ
  22. 타스케 ·
    긁어온 내용을 DB에 저장할 때도
    # -*- coding: cp949 -*-
    설정이면 충분한가요?

    예전에 한글은 저장이 안되서 포기했던 기억이.. ㅠㅠ
  23. 무신론자 ·
    진짜 책 하나 써주세요 ㅎㅎ
  24. 라이크유 ·
    +1 *
  25. Mr-K ·
    +1 *

팁과강좌 최근 글

팁과강좌 목록 더 보기