구글시트 강좌1 IMPORTHTML로 한방에 하는 웹페이지 크롤링 (모든 코인 현재가격 불러오기)

in #kr7 years ago (edited)

눈꼽만큼씩 도움이 될만한 구글시트 함수 강의를 하기로한 @youngbinlee 빈누입니다.

구글 시트란?

구글 시트는 구글에서 제공하는 스프레드시트 프로그램입니다. 마이크로 소프트 엑셀과 거의 동일하지만, 클라우드 상에 파일이 존재하여, 여러 기기에서 접근하거나, 여러 사람이 동시에 수정을 하는 등 엑셀보다 편리한 점이 많이 있습니다.

기존의 엑셀 함수는 대부분 사용이 가능하고, 구글 시트에서만 작동하는 유용한 함수들도 많이 있습니다. 구글 시트를 익혀서 여러분의 생산성을 올려보세요! :) 구글 드라이브 바로가기

오늘의 함수 importhtml

개인적으로 구글 시트상에서 가장 활용도가 높으면서도 간단한 함수를 소개하도록 하겠습니다. 바로 웹사이트의 정보를 간단하게 크롤링해올 수 있는 함수 IMPORTHTML 입니다. HTML 페이지에서 표(TABLE) 또는 목록(LIST)로 있는 데이터를 가져옵니다.

함수 사용법

IMPORTHTML(URL, 쿼리, 색인)

  • URL - 검토할 페이지의 주소를 입력합니다.
    • URL 값은 http://를 포함하여 따옴표로 묶거나, 해당 텍스트를 포함하는 셀에 대한 참조여야 합니다.
  • 쿼리 - 원하는 데이터가 어떤 구조에 포함되었는지에 따라 목록인 경우에는 "list", 표인 경우에는 "table"로 입력합니다.
  • 색인 - HTML 소스에 정의된 표 또는 목록 중 반환되어야 하는 것을 확인하는 색인으로 1에서 시작합니다.

예제1

야구 리그 순위 페이지에서 순위 테이블을 불러와보자.

=importhtml("https://www.koreabaseball.com/TeamRank/TeamRank.aspx","table",1)

예제2

Cryptocurrency Market Capitalizations 웹사이트에 있는 코인의 가격 정보를 한방에 불러와보자.

=importhtml("https://coinmarketcap.com/", "table",1)

예제3

steemd.com에 있는 계정 정보를 불러와보자.

=importhtml("https://steemd.com/@youngbinlee","table",1)

몇가지 알아둘점

  • importhtml 함수는 웹페이지에서 table 태그나 ul 혹은 ol의 리스트 태그로 작성된 데이터만 불러올 수 있음.
  • importhtml 함수는 모든 사람에게 공개된 웹페이지의 데이터만 불러 올 수 있고, 로그인이 필요한 페이지는 불러올 수 없음.
  • 겉보기에는 html로 이루어진 웹페이지처럼 보이더라도, 그 안에 javascript 등 프로그램이 데이터를 불러오는 부분이 포함되어있다면, importhtml로 불러오지 못할 수 있음.
  • importhtml 함수는 구글 시트가 오픈되는 시점에서 데이터를 리로딩함. 구글 시트를 오픈하지 않더라도 1-2시간에 한번 정도는 구글 서버에서 새로고침을 하는 것으로 알려져 있음.
  • importhtml 함수를 많이 사용하면 시트가 느려지거나, 데이터를 불러오는데 문제가 생길 수 있으니 적절한 곳에만 사용하시길.

숙제

https://steemd.com/ 사이트 우측에 있는 스팀에 대한 정보 테이블을 구글 시트에 불러와보자.

댓글로 숙제 올려주시는분 계시면 보팅해드릴게요! ^ㅁ^

Sort:  

컴퓨터 강좌가 고팠는데 감사합니다!! 강좌많이많이 올려주세요 열심히 배울께요 ㅋㅋㅋ

앗 이거 아니고 스팀드 메인 페이지 요청드린거지만. 이것도 숙제 제출로 인정하겠습니다. ㅎㅎㅎ

정말 컴알못이라 이해안되도 일단 무조건 따라해보고 있습니다 ㅠ
궁금한 점이 2가지 있는데,

  1. '색인'이라는 것이 무엇인지 잘 이해가 안갑니다. 왜 '1'을 더 써넣어야 하는지 ㅠ
  2. 웹화면보면 그게 테이블 같기도 하고, list같기도 한데 ㅠ 구별법이 있는지요?? ㅠ

강좌 정말 감사합니다!!

  1. 여기에서 사용된 "1"은 공교롭게도 모두 예제가 "첫번째" table을 이용해서 그렇구요. 한 웹페이지에서 테이블이 여러개 사용된 경우들이 있거든요. 그럴때는 2번 테이블일땐 2, 3번 테이블일땐 3 이렇게 다르게 입력해주어야 합니다. 좋은 예가 네이버 금융 페이지인데요. 아래 삼성전자 페이지에서 "table"로 1번, 2번, 3번 이렇게 쭉.. 한번 불러와보세요. http://finance.naver.com/item/main.nhn?code=005930

  2. 테이블처럼 생긴건 테이블이고, 목록처럼 생긴건 list구요 ㅎㅎㅎ 겉보기에 티가 잘 안난다 싶은건 html 코드를 열어보면 됩니다. 크롬 브라우저 사용하신다면 내가 원하는 곳에서 우클릭 하신뒤 '검사' 메뉴를 선택해보시면 그 부분의 html 코드를 볼 수 있거든요. table이나 tr/td/th 와 같은 녀석들이 보이면 table이고, ul/ol/li 요런 녀석들이 보이면 list 입니다.

친절한 설명 정말 감사드립니다^^

이미지 8.png

과학 실험을 지도하면서 학생들과 구글 문서 도구를 자주 사용하는데 구글 스프레드시트에 이런 기능이 있는지 몰랐네요. 좋은 정보 감사하고, 앞으로도 잘 부탁드리겠습니다-

구글 문서 도구 잘 쓰면 정말 좋죠. 선생님들이 쓰면 유용한 기능도 정말 많더라구요. 앞으로 꾸준히 올려볼게요! :)

우와..!!!! 너무 신기해요!!!!!! 구글에 엑셀이랑 비슷한 기능이 있다는건 들었는데 이렇게 유용한거였네요!

a.JPG

바로 따라해봤습니다 ㅎㅎㅎㅎ

import 함수는 구글에서만 쓸 수 있는 함수에요! 엑셀보다 좋은 부분도 많답니다!

숙제를 했는데 어떻게 사진을 첨부하는지 몰라서 저는 링크로...ㅠㅠ
숙제1

그리고 영빈님 제가 궁금한 점이 있는데, 네이버 금융페이지를 따오면 문자 앞 뒤로 * 마크가 생기는데 지울 수 있는 방법은 없나요? 글 감사합니다. 많이 배우고 있어요! :)

오우 강의 컨텐츠인가요 ㅋㅋㅋ^^/

자주 올릴만한걸 찾다보니 역시 이게 제일 나은것 같아서욥 ㅋㅋ

크롤링도 이렇게 간단히 되나요.
항상 좋은 자료 감사합니다.

구글 시트로 하면 정말 간단하게 할 수 있습니다!

요즘 스프레드시트 사용을 배우려고 생가가던 차에 이런 유용한 정보를 올려주셔서 넘나 감사해요!!!

숙제로 내드리는 것들 조금씩 해보시면 감이 잡히실거에요 :)

이런 유용한 함수가 있다는 것은 미처 몰랐어요! 활용도가 무궁무진 하네요 너무 감사드려요~!!

엑셀에서도 비슷한 기능이 있긴 하지만, 개인적으로는 구글이 사용하기 편하고 좋더라구요.

늦었지만 저도 따라해봤습니다. ^^

Coin Marketplace

STEEM 0.16
TRX 0.13
JST 0.027
BTC 58004.44
ETH 2579.54
USDT 1.00
SBD 2.40