아카이브/ICT

▶간단한 데이터스크래핑 프로그램 OutWitHub

비주얼라이즈 2015. 1. 22. 00:48



▶간단한 데이터스크래핑 프로그램 OutWitHub


이번글에서는 'OutWitHub'라는 소프트웨어를 활용하여 간단하게 데이터 스크래핑을 하는 과정에 대해서 살펴보고자 합니다. 




outWitHub를 활용한 데이터 스크래핑방법




OutWitHub 다운로드 및 설치




outWit hub사이트에서 소프트웨어를 다운로드받습니다. 용량도 크지않고, 간단하게 크롤링하는 것을 목적으로 한다면 시험버전으로도 충분합니다.




권장설정으로 설치하는데 걸리는 시간은 채 몇분도 걸리지않습니다. 다운로드를 받는동안 다른 일하고 있을 필요 없이 스피드하게 설치하고 스피드하게 실행해봅니다. 설치를 완료하셨다면, 크롤링하고싶은 페이지의 구조를 들여다보아야합니다.



데이터 스크래핑을 할 웹사이트를 정하기



저는 매일같이 접속하다 MILK서비스가 나온뒤로 가지않고있던 '네이버뮤직'에 들어가봤습니다. 



저는 OutWit Hub의 크롤링기능을 활용하여 , 네이버뮤직에서도 "네이버 TOP 100 곡 이름"을 스크래핑해보려고합니다.






웹페이지 소스보는법



스크래핑을 하기전에 이 페이지의 구조를 슥- 들여다봅니다. 이 사이트의 소스를 보려고하는데요, 방법은 여러가지가 있습니다. 




웹페이지의 소스보는법(크롬기준)


페이지화면에서 우클릭 > 페이지소스보기

구글크롬 우측상단버튼 > 도구 더보기 > 소스더보기

소스보기 단축키 사용 : Ctrl + U 




소스페이지를 열어보면 새로운세계(?)가 펼쳐집니다. 우리에게 익숙했던 인터페이스화면이 아니라, 오로지 문자로만 가득한 페이지의 모습을 목격하게 됩니다. 여기서 저같이 스크래핑이 처음인 분들은 정신이 혼미해지기 시작하실텐데요, 별거없습니다. 따라서 정신 집중하고 "뭘 스크래핑하려했지?"라고 다시 되뇌어봅니다. 






다시 익숙한 인터페이스화면으로 돌아가서, 1위를 기록하고있는 곡의 이름을 찾아봅니다. 제가 보고있는 지금은 다비치의 "또 운다 또"라는 곡이 1위를 하고 있습니다. 이것을 기억하고 다시 소스페이지로 돌아갑니다.






Ctrl + F 키를 이용하여 찾기기능을 열어준 뒤, 앞서 확인한 노래제목을 찾아봅니다. (굳이 찾기기능을 쓰지않고 화면상의 스크롤을 내려가며 찾는 방법이 있긴하지만, 이게 더 편합니다.) 찾아보니 제목역시 외계어(?)로 쌓여있습니다. 


그리고 다음 노래제목도 찾아보니 마찬가지로 외계어(?)로 둘러쌓여있습니다. 그런데 여기서 중요한것은 "이 외계어가 무슨 기능을 하느냐"가 아닙니다. 우리는 여기서 일정한 "규칙성"만 찾으면됩니다.




데이터스크래핑 - 규칙성을 찾기



설치한 Outwithub 창으로 돌아간 뒤, 크롤링하고자하는 사이트의 URL주소를 입력해줍니다. 인터넷이 잘 연결되어있다면, 페이지 로드가 되실것입니다.



구조화가 잘 된 페이지와 그렇지 않은페이지 별 OutWitHub사용법



모든 웹페이지는 본래 스크래핑을 위해 만들어진 것이 아닙니다. 즉, 대부분의 웹사이트들은 스크래핑에 적절한 형태가 아닙니다. 굳이 또 스크래핑을 목적으로하는 사람의 관점에서 살펴본다고 한다면 "잘 구조화 되었다."라고 하는 데이터 형식과, "그렇지 않은 데이터의 형식"들로 나누어 볼 수 있겠습니다.

스크래핑하기 딱 좋은 데이터 형식의 예 - table과 list

(스크래핑을 하는 우리의 입장에서)구조화가 잘 된 웹페이지들은 대부분 <table>이나 <ol>또는 <ul>형태의 리스트들입니다.


 
이러한 형식으로 구성되어있는 웹사이트의 경우에는, OutWitHub에서 아주 간단한 방법으로 크롤링을 적용할 수 있습니다.

그 밖에 많은 경우의 스크래핑.


그렇지 않은 경우에도 당황하지않고, 각각의 페이지화면에 맞게 조절할 수 있는 환경입니다. 



그러나 위의 경우처럼 웹페이지들이 구조화가 잘 되어있는 상황은 그리 많지않습니다. 이런 경우에 OutWitHub 카테고리의 [scrapers] 자세히보면 1위곡인 "또 운다 또"와 2위곡인 "슬픔 속에 그댈 지워야만 해"앞에 동일한 태그가 있다는 것을 확인하실 수 있습니다. 바로 이것을 가지고 OutwitHub에서 크롤링을 해올것입니다.




그다음에는 왼쪽 메뉴창에서 [scrapers]라는 버튼을 클릭해봅니다. 우리는 아직 여기서 아무것도 만들어본 적이 없기때문에, 하단에 보이는 [new]버튼을 클릭하여 새로운 스크래퍼를 만들어줍니다. 파워포인트로치면 새문서 만들기 후 문서의 이름을 지정해주는 작업입니다.




잘 생성하셨다면 앞서 네이버뮤직소스를 들여다보면서 확인했던 그 규칙있는 태그들을 집어넣어줄 차례입니다. [Description] 은 원하는 이름써주시고, 그 오른쪽에 있는 [Marker Before]에다가 아까 찾아놓았던 "<span class="ellipsis>"를, 그리고 [Marker After]에다가는 "</span>"을 입력해줍니다. 여기까지 하셨다면 다음을 위해 [save]를 한번 눌러줍니다.


세팅은 다 했고, 이제 결과를 확인하는 일만 남았습니다. 왼쪽 메뉴 중 [scraped]를 클릭하면 결과창이 보입니다. 아직 세팅한 결과가 표시되지않는다면 [scraped]창 하단에보이는 새로고침 표시를 눌러줍니다. 결과창을 보니 목표했던 '네이버뮤직 종합100순위 노래이름'이 순서대로 잘 스크래핑되어있는 모습입니다.


[scraped]에서 원하는 데이터가 스크래핑 되어온 것을 확인하셨다면 그 데이터들을 선택 후 [catch]버튼을 눌러줍니다. 그러면 위 사진처럼 Export창에도 가져온 데이터들이 가득가득차게됩니다. 이상태에서 우측하단에 있는 [Export]버튼을 눌러줍니다. 이 [Export]버튼을 눌러보면 새로운 선택메뉴가 나오는데요, 여기서 원하는 형식을 선택한 후 저장해주시면 됩니다.




저는 CSV형태로 저장해서 엑셀로 열어보았습니다. 아까 OutWitHub에서 보았던 데이터들이 잘 저장되어있는 모습입니다. 





나름 자세하게 그 과정을 써본다고 썼는데 이해가 잘안되신다면 Outwithub 튜토리얼영상을 통해 차근차근따라해보시는 것이 좋습니다. 아래 튜토리얼 영상을 함께 링크해드립니다.