안녕하세요 :) 남무맘무입니다.
오늘은 앞서 말씀드린 강의 OT (여기)에 이어서 첫 시간으로 구글 스프레드시트의 크롤링 함수 중 하나인 'importhtml' 함수에 대해 소개해드리려고 합니다. 이 함수는 스프레드시트의 가장 기본적이면서도 가장 강력한 크롤링 함수라고 말씀드릴 수 있겠는데요, 한 번 알아보러 갑시다!
1. 만들 수 있는 것들
importhtml 함수를 사용하면 이런 것들을 만들 수 있습니다.
앞선 OT에서 (여기) <M사 학력평가 올인원 모의서치 프로그램>에 대해서는 설명드린 것 같고, 이제는 가장 최근에 개발한 <오마이걸 일정 알림 서비스>에 대해 좀 더 설명드리겠습니다. 먼저 구글 스프레드시트가 상시로 소속사 홈페이지, 커뮤니티 등에서 연예인의 일정을 긁어옵니다. 그리고 난 후 매일 오전 5~6시 사이 제 카카오메일을 통해 일정을 보내줍니다. 그리고 저는 매일 아침마다 도착한 카카오톡을 통해 연예인의 일정을 확인할 수 있게 되는겁니다. (참고로 저는 오마이걸의 팬인 '미라클'입니다.)
위와 같은 서비스는 사실 importhtml 함수만을 이용한 것은 아니고, vlookup 함수나 image 함수 등 다양한 함수를 응용하여 만든 프로그램이므로 단순 크롤링이 필요하신 분들에게는 어려운 점이 있을 수 있습니다. 따라서 이번 시간에는 정말 간단하게, 삼성전자의 재무재표를 크롤링해보도록 하겠습니다. 정말 쉬워요 :)
2. 만들기
먼저 구글에 로그인하시고, 구글 스프레드시트 (여기)로 접속해주세요.
<TIP> 구글 스프레드시트를 실행하실 때에는 되도록 <Chrome> 브라우저의 '시크릿 모드'를 사용해주세요! 복합적인 캐시, 쿠키 등의 문제, 그리고 하나의 브라우저 내에 계정이 여러 개 로그인되어 있는 문제로 인해 추후 구글 스크립트를 사용시 오류가 발생할 수 있습니다. |
아래 사진과 같이 새 문서를 생성해주세요.
제가 이 강의에서 사용할 예제 사이트는 CompanyGuide 사이트 (여기) 입니다. (robots.txt 규약을 준수하였습니다.)
위 사이트의 링크 전체를 복사해두시기 바랍니다.
다시 아까 만들었던 새 문서로 돌아와서 importhtml 함수를 입력해주시면 되는데요, 형식은 아래와 같습니다.
=importhtml(URL, 검색어, 색인)
EX) =importhtml("http://comp.fnguide.com/SVO2/ASP/SVD_Finance.asp?pGB=1&gicode=A005930&cID=&MenuYn=Y&ReportGB=&NewMenuID=103&stkGb=701","table",1)
=> 반드시 URL과 검색어 텍스트는 예시와 같이 큰따옴표 ("")로 묶어주셔야 합니다.
=> list 형식으로 처리되어 있는 데이터도 importhtml로 크롤링 할 수 있습니다.
입력하는 과정은 아래 이미지에 상세하게 담아 두었습니다.
끝났습니다. 크롤링 완성입니다.
정말 간단하죠?
여기까지만 한다면 초보자분들은 제가 알려드린 사이트 외에는 다른 사이트를 크롤링하기가 힘드실 겁니다.
왜요? 겉으로 보기에는 데이터가 표처럼 처리되어 있지만 html 태그 상으로는 <table> 태그가 아닌 다른 태그로 처리되어 있을 수 있기 때문입니다.
따라서 위 내용을 비롯한 importhtml 함수에 관한 자주 묻는 질문들에 대해 정리 해보겠습니다.
3. 자주 묻는 질문
Q1. 크롤링하고자 하는 사이트의 데이터가 <table> 혹은 <list> 형식으로 처리되어 있는지 확인하려면 어떻게 해야 하나요?
A. 구글 크롬에 내장된 개발자 도구를 이용하시면 됩니다. (구글 크롬 계열 브라우저인 네이버 웨일과 같은 브라우저들도 모두 가능합니다.)
Q2. 이 사이트를 크롤링해도 되는지, 크롤링하면 안 되는지 알 수 있는 방법이 있나요?
A. robots.txt를 확인하시면 됩니다. 세부 내용은 제가 정리한 아래를 참고하시기 바랍니다.
=> robots.txt 확인 방법
사이트 URL/robots.txt
ex) https://nmmmblog.tistory.com/robots.txt
지금까지 importhtml 함수와 크롤링에 관한 기본적인 내용들에 대해 살펴보았습니다.
다음 글에서 만나요 :)