IMPORTHTML 함수 추가기능 (웹 크롤링 함수)

무료

특정 웹페이지의 테이블 및 목록 데이터를 추출합니다. 순번 또는 클래스를 직접 지정하여 추출할 수 있습니다.

⭐️ 모든 일반 회원에게 무료로 제공되는 자료입니다.

파일형식

카테고리:

IMPORTHTML 함수 추가기능 - DuTool

특정 웹 페이지의 테이블 또는 목록 데이터를 추출하는 사용자 지정 함수
(동적출력, 배열반환가능, 특정 클래스 지정 가능)


파일 다운로드

오빠두엑셀 홈페이지의 모든 서식은 회원 여러분께 무료로 제공됩니다.

  • [회원자료] IMPORTHTML 함수 추가기능
    추가기능

엑셀 IMPORTHTML 함수 추가기능 안내

IMPORTHTML 함수는 특정 웹페이지의 테이블 및 목록 데이터를 빠르게 추출하는 사용자 지정함수입니다. 추출하고자 하는 테이블, 항목의 '순번'을 지정하거나 또는 클래스 이름을 직접 지정하여 데이터를 추출할 수 있습니다. 만약 순번이나 클래스이름이 입력되지 않을 경우, 해당 페이지에서 가장 데이터가 많은 항목을 반환합니다.

엑셀 IMPORTHTML 함수 동적반환이 기본값으로 설정되어 있습니다. 따라서 출력범위에 기존값이 있을 경우, 기존값을 지운 뒤 새로운 값을 덮어쓰기 합니다. 만약 정해진 범위에만 데이터를 출력해야 할 경우, 상황에 따라 배열반환여부를 'TRUE'로 설정하여 사용할 수 있습니다. 함수는 아래 3개 Tag를 가진 데이터만 추출가능합니다.

  • table : 표
  • ul (unordered list) : 번호없는 목록
  • ol (ordered list) : 번호 목록

보다 유연한 웹 크롤링 기법은 아래 VBA 크롤링 강의에서 단계별로 설명하여 드렸습니다. 보다 세부적인 데이터 추출작업이 필요할 경우, 아래 강의를 참고하여 사용자명령문을 직접 제작하여 사용할 수 있습니다.

DuTool 추가기능은 다운로드받은 파일을 실행하면 자동으로 설치됩니다. 단계별 설치방법은 아래 링크를 참고하세요.

회원에게 제공되는 특별한 혜택!

.

주기적인 업데이트 및 패치 제공 

파일 사용 중에 오류나 버그 발생시 커뮤니티에 문의해주세요! 확인 후 실시간 업데이트 및 패치를 제공해드립니다.

.

언제 어디서든, 무제한 다운로드 가능

1년 365일 언제 어디서든 파일이 필요할 경우, '클릭 한 번' 으로 손쉽게 파일을 다운받을 수 있습니다.

.

엑셀 커뮤니티 1:1 질의응답

파일 사용 중에 궁금한 점, 개선사항이 있을 경우 커뮤니티에 글을 올려주세요! 회원 여러분과 함께 교류하며 소통할 수 있습니다.

엑셀 IMPORTHTML함수 구문
= IMPORTHTML ( URL주소, 형식, 순번(또는 클래스), 배열반환여부 )
IMPORTHTML 함수 인수설명
인수 설명
URL주소 데이터를 추출할 웹 페이지 주소입니다.
형식 추출할 데이터 형식입니다. 아래 3가지 형식만 선택가능하며, 이외 값 선택시 #VALUE! 오류를 반환합니다.
  • table
  • ul
  • ol
순번(또는 클래스)
[선택인수]
출력하고자 하는 항목이 페이지에서 몇번째 위치하는지 순번을 입력하거나 또는 클래스를 직접 입력합니다. 순서는 큰따옴표(") 없이 숫자로 입력하며, 클래스는 큰따옴표로 묶어서 입력합니다.

순번 또는 클래스가 지정되지 않을경우, IMPORTHTML 함수는 페이지에서 데이터가 가장 많은 항목을 결과값으로 출력합니다.

배열반환여부
[선택인수]
배열반환여부가 TRUE면 결과값을 배열로 반환합니다. 기본값은 FALSE 입니다. 배열반환여부가 TRUE 일 경우, 함수는 반드시 CTRL + SHIFT + ENTER 로 입력되어야 합니다.
호환성
운영체제 호환성
Windows 버전 엑셀 2007 이상 버전에서 사용가능합니다.
Mac 버전 Mac용 엑셀 2011 이상 버전에서 사용가능합니다.

IMPORTHTML 함수 사용예제

1. 음악 차트 100위 까지 순위 목록 가져오기 (벅스뮤직 벅스차트)
=IMPORTHTML( URL주소, "table", "list trackList byChart")
'// URL주소 : https://music.bugs.co.kr/chart (URL 주소는 홈페이지 사정에 따라 달라질 수 있습니다)

크롤링 음악 순위 가져오기 IMPORTHTML 함수

2. 역대 국회의원 목록 추출하기
=IMPORTHTML( URL주소, "table", 순번)
'// URL주소 : https://www.assembly.go.kr/views/cms/assm/assembly/asshistory/asshistory0105.jsp (URL 주소는 홈페이지 사정에 따라 달라질 수 있습니다)

엑셀 IMPORTHTML 함수 국회의원 목록

3. 네이버 카테고리 별 상품 목록 추출하기
=IMPORTHTML( URL주소, "ul", "goods_list")
'// URL주소 : https://search.shopping.naver.com/search/category.nhn?cat_id=카테고리번호 (URL 주소는 홈페이지 사정에 따라 달라질 수 있습니다)

네이버 쇼핑 크롤링

4. 국회의원 목록 중 성이 "김"씨인 국회의원 인원수 계산
=SUMPRODUCT(--(ISNUMBER(SEARCH("김*",IMPORTHTML(URL,"table",1,TRUE)))))
'// URL주소 : https://www.assembly.go.kr/views/cms/assm/assembly/asshistory/asshistory0105.jsp (URL 주소는 홈페이지 사정에 따라 달라질 수 있습니다)

특정 문자를 포함하는 부분일치 여부를 검색하는 공식에 대한 자세한 설명은 아래 관련포스트를 확인하세요.

그 외 참고사항

  • 추가기능으로 제공되는 모든 함수는, '함수가 실행 될 경우' 이전에 기록된 모든 작업 기록을 초기화하므로 이전단계 되돌리기(Ctrl + Z) 기능을 사용할 수 없게되는 점을 주의하여 사용합니다.
  • IMPORTHTML 함수의 배열반환여부가 FALSE 이고, 함수가 출력될 범위에 기존값이 있을 경우, 함수는 기존값을 지우고 새로운 값을 덮어쓰기 합니다. 정해진 크기의 데이터를 정해진 범위에만 추출해야 할 경우, 배열반환여부를 TRUE로 변경한 뒤 배열수식으로 이용할 수 있습니다.
  • 해당 함수는 table, ul, ol 목록만 추출합니다. 보다 세분화 된 크롤링 작업이 필요할 경우, 아래 VBA 강의를 참고하여 본인만의 커스텀 크롤링 명령문을 작성하여 이용합니다.

패치노트

  • v1.0.2 (2020.06.10)
    - 표의 각 행별 열 개수가 다를 경우 값을 제대로 가져오지 못하던 오류 수정
  • v1.0.1 (2020.06.01)
    - 호환성 개선
  • v1.0.0 (2020.05.08)
    - IMPORTHTML 함수 추가기능 릴리즈
guest
Inline Feedbacks
모든 댓글 보기
스타크엑셀
2020년 5월 11일 7:20 오전
별점주기 :
     

표나 목록이 아니라 div 로 여러개가 겹쳐져 잇는거는 방법이 없나요?ㅠ

여시
2020년 6월 1일 6:18 오전
별점주기 :
     

IMPORTHTML 함수로 이미지는 못 가져오나요??
안되네요. 방법이 있으면 부탁합니다.

여시
2020년 6월 1일 6:47 오전
답글 남기기  여시

그리고 지금 리턴값이 #NULL로 나오네요. 어디가 잘못되었는지도 한번 봐주심 감사합니다.
IMPORTHTML("https://search.shopping.naver.com/search/category?catId=50000190","ul","list_basis")

여시
2020년 6월 1일 5:22 오후
답글 남기기  오빠두엑셀

안녕하세요. 빠른 답변 감사합니다.
업데이트 후 "숨겨진 모듈 Module1에서 컴파일 오류가 발생했습니다. ..."메세지가 뜹니다.

여시
2020년 6월 1일 7:19 오후
답글 남기기  오빠두엑셀

네 잘 됩니다. 감사합니다. 한가지 더 문의. 이미지(URL경로)는 가져올 수 없나용?? 아니면 웹 크롤링으로 해야 할까요??? 시장조사와 상품분석(가격변동)에 필요한 엑셀 VBA을 만들어 보려합니다. 예제소스가 있으면 부탁드립니다. ( doit1042@daum.net ) 뒤늦게… 더보기 »

여시
2020년 6월 2일 6:05 오후
답글 남기기  오빠두엑셀

네. 웹 크롤링으로 이미지 경로을 받아서 처리하였읍니다. 감사합니다. 추가 질문 하나 더 ^^ 엑셀 웹 크롤링 작업시 워크시트에서 Web Browser1를 안보이게 (Hidden:)숨기는 방법이 있을까요?? 리턴값리스트만 보였으면해서요. 재 쿼리(실행)시 이미지가 중복되어… 더보기 »

여시
2020년 6월 3일 1:27 오후
답글 남기기  오빠두엑셀

위 소스로 잘 해결했으나 Shape.Visible = False로 삭제해결^^ 그런데 WebBrowser의 Visible 속성을 False로 변경하면 다음 실행때 Wait_Browser MyBrowser가 루프에서 나오질 못하더군요 ㅜㅜ 그래서 Set MyBrowser = New InternetExplorer Set Mybutton… 더보기 »

여시
2020년 6월 6일 3:14 오전
별점주기 :
     

안녕하세요^^ 질문을 계속드리다 보니깐.. IMPORTHTML 함수와 관련이 없네요 ㅎㅎㅎ 항상 답변 감사합니다.   추가 문의 드립니다. 페이지 중간에 search.shopping.naver.com/best100v2/detail.nhn?catId=50000000   인기상품, 인기검색어,인기브랜드,인기쇼핑몰 을 클릭하면 나오는  검색어 순위 리스트를 추출하려는데 안되네요 ㅜㅜ… 더보기 »

Last edited 1 년 전 by 여시
굴레악
2020년 7월 9일 5:02 오후
별점주기 :
     

제가 필요로 했던 기능이 이거인 듯하네요.
학습해서 사용해보도록 하겠습니다.
감사합니다. (__)

dailytech
dailytech
2020년 8월 29일 7:16 오전
별점주기 :
     

너무 좋은 기능인거 같습니다.
그런데 함수가 걸려있는 파일이 자꾸 종료되는데 어떻게 해결해야될까요?

dailytech
dailytech
2020년 8월 30일 9:56 오후
답글 남기기  오빠두엑셀

답변 감사합니다. 임포트 함수를 10개 정도 걸어두었는데, 파일을 열면 로딩되다가 갑자기 종료됩니다. 오류메세지는 안나오고 그냥 종료되고 끝납니다.

https://drive.google.com/file/d/1-rdoO658gVZgxwnT9EE8LMPzDVn1Js4h/view?usp=sharing

Last edited 1 년 전 by dailytech
dailytech
dailytech
2020년 9월 1일 10:16 오전
답글 남기기  오빠두엑셀

해결이 어려운 문제인가요? 아니면 첨부로 보내드린 파일에서 문제가 없나요?

굴레악
2020년 9월 23일 1:08 오전
별점주기 :
     

다나와는 안 될까요.
=ImportHTML("http://prod.danawa.com/info/?pcode=6351641&cate=112782#bookmark_product_information","table","spec_tbl")
#TIMEOUT!가 나오기도 하고 NULL 오류가 나오기도 하네요 ㅠ

굴레악
2020년 9월 23일 9:09 오후
답글 남기기  오빠두엑셀

아하 그렇군요.
뭔가 일반적이지 않은 거 같긴 했어요.
php를 사용했군요.

pilkyu****
pilkyu****
2020년 11월 23일 6:01 오후
별점주기 :
     

안녕하세요 오늘로 구독 1일차 엑셀 초보입니다.

https://finance.naver.com/item/sise.nhn?code=047810 해당 싸이트의 현재주가를 가져오고 싶은데

=ImportHTML("https://finance.naver.com/item/sise.nhn?code=047810","table","class=num")

이게 맞을까요? 계속 값이 "NULL"로 뜨네요.. ㅠㅠ

이불뭉치
이불뭉치
2021년 1월 15일 5:30 오후
답글 남기기  오빠두엑셀

안녕하세요. 막히던 부분을 해결해주셔서 감사합니다.
=importhtml("https://finance.yahoo.com/quote/%5ESP500TR/history?period1=1452816000&period2=1610668800&interval=1d&filter=history&frequency=1d&includeAdjustedClose=true","table",1)
이럴 경우 5년치 데이터를 부르는건데 데이터가 100개로 나오는 이유는 뭘지 혹시 여쭤봐도 될까요? 저 주소에서 엑셀로 받으면 5년 데이터가 나오거든요.

이불뭉치
이불뭉치
2021년 1월 16일 8:41 오전
답글 남기기  오빠두엑셀

감사합니다. 알려주신 방법으로 해보겠습니다!!

어떡하죠
어떡하죠
2021년 1월 19일 1:47 오전
별점주기 :
     

IMPORTHTML을 여러번쓰면 캐쉬가 많이 남아서인지 데이터를 불러오는데 엄청 오래 걸리게 됩니다.
찾아보니 한 시트에서 약 100번 정도밖에 못 쓴다고 하는데,
더 여러번 쓸 수 있는 방법이 없을까요? 캐쉬를 지운다던가...

소신있는FP
소신있는FP
2021년 1월 27일 2:00 오후
별점주기 :
     

안녕하세요. 해보다가 막혀서 이렇게 질문 남겨봅니다. =ImportHTML("https://jumin.mois.go.kr/statMonth.do","table") 이렇게 입력하면 행정구역을 넣지 않은 전체 대한민국 기준으로 나오는데 드롭다운 형식의 검색어를 참조해서 크롤링 할 수는 없을까요? 특정 셀 ex) a2 : 부산시… 더보기 »

부자되써
부자되써
2021년 3월 4일 9:07 오전
별점주기 :
     

안녕하세요 꼭 필요한 내용이 있어 오늘 가입하고 해보다가 아직 개념이 없어 잘 안되어 질문 드립니다~ 비트코인의 시세를 가져오려고 하는데요 URL의 오른쪽 테이블에서 시세를 가져오려고 합니다. =INDEX(ImportHTML("https://www.upbit.com/exchange?code=CRIX.UPBIT.KRW-BTC","table","highlight borderNone",TRUE),2,2) 이렇게 작성했는데요 #REF!… 더보기 »

임형섭
임형섭
2021년 3월 26일 12:37 오전
별점주기 :
     

한가지 문의 드립니다. 업무에있어 상품 제품 리스트을 한번에 하려고 합니다 http://prod.danawa.com/list/?cate=102110 광고을 제외하고 보니 class="main_prodlist main_prodlist_list" 여기 값이 맞는거 같은데 엑셀에 대입하면 숫자가 아니라고 오류가 표기되고 있습니다. 혹시 해결방안이 있나요… 더보기 »

글로리
글로리
2021년 4월 22일 9:49 오전
별점주기 :
     

다운로드했는데 화일이 열리지 않습니다. 자동으로 c:w에 깔리기는 했는데 화일이 열리지 않네요

글로리
글로리
2021년 4월 22일 10:54 오전
별점주기 :
     

에러가 뜨는데 어찌해결해야 하나요
파일의 이름이 변경되었거나 파일이 이동 또는 삭제 되어쓴지 확인하라는 메세지가 뜹니다

이선우
이선우
2021년 5월 10일 6:35 오후
별점주기 :
     

감사합니다. 덕분에 잘 되었는데요.
궁금한거는 1시간 마다 실행해서 결과값이 없데이트 되면 좋은데 가능할까요?
예제 사이트는 https://www.coingecko.com/ko/%EC%BD%94%EC%9D%B8/recently_added
입니다.

새로운 코인이 나올때마다 값이 변경 되거든요;;

Lotus84
Lotus84
2021년 9월 15일 9:34 오전
별점주기 :
     

좋은 자료 감사합니다. 그런데 여기 사이트(https://komyojikyozo.web.fc2.com/snsgv/sn04/sn04c05.htm)에 나오는 테이블은 안되는 거지요? 그리고 이 수식에 문제가 있습니다. 
수식 입력을 원하지 않은 경우 ~~~~ 이런 오류가 뜨는데 이유를 알 수 있을까요? =ImportHTML(https://komyojikyozo.web.fc2.com/snsgv/sn04/sn04c05.htm,"table")

44
0
여러분의 생각을 댓글로 남겨주세요.x