[크롤링] 테이블 하위 태그의 모든 내용 크롤링

VBA
작성자
최인섭
작성일
2021-12-21 14:02
조회
80
엑셀버전 : 엑셀2019

운영체제 : 윈도우10

기존 질문에 오타가있어 재질문 드립니다!

크롤링 Table 하위항목 <thead>,<tbody>에서 <tbody>항목 가져오는 방법이 궁금합니다.

현재 Table에서 크롤링할 경우 첫번째 <thead>항목만 크롤링되고 있습니다.

질문 내용은 아래와 같습니다.

  1. <tbody>의 컨테이너 목록을 가져오고싶은데 방법이 없을까요? (현재는 <thead>의 항목만 크롤링되고 나머지 정보는 나오지 않습니다)
  2. hBody라는 변수를 선언 후 Set hBody = hTable.Children(1)같이 hTable의 하위항목을 불러와서 크롤링했는데 아무것도 나오지 않았습니다. 방법이 잘못된 것일까요?

아래는 HTML 원문 및 현재 VBA 코드입니다.

HTML VBA
<table class="cntr-list">
<thead>
<tr>
<th>No.</th>
<th>컨테이너 넘버</th>
<th>규격</th>
<th>봉인번호</th>
</tr>
</thead>
<tbody>
<!----><tr>
<td>1</td>
<td>BMOU6087550</td>
<td>45GP</td>
<td>
DJS083590</td>
</tr><tr>
<td>2</td>
<td>DJLU5017697</td>
<td>45GP</td>
<td>
DJS087241

</td>
</tr><tr>
<td>3</td>
<td>DJLU5156331</td>
<td>45GP</td>
<td>
DJS083589

</td>
</tr><tr>
<td>4</td>
<td>DRYU9914099</td>
<td>45GP</td>
<td>
DJS083585

</td>
</tr><tr>
<td>5</td>
<td>PHRU8601071</td>
<td>45GP</td>
<td>
DJS083588

</td>
</tr><tr>
<td>6</td>
<td>PHRU8604300</td>
<td>45GP</td>
<td>
DJS083601

</td>
</tr><tr>
<td>7</td>
<td>PHRU8701316</td>
<td>45GP</td>
<td>
DJS083624

</td>
</tr>
</tbody>
</table>

Public Sub GetTable()Dim html As MSHTML.HTMLDocument, hTable As Object, ws As Worksheet, url As Range, hBody As Object
Set url = Worksheets("Sheet1").Range("A3")
Set ws = ThisWorkbook.Worksheets("Sheet1")
Set html = New MSHTML.HTMLDocument

With CreateObject("MSXML2.XMLHTTP")
.Open "GET", url, False
.send
html.body.innerHTML = .responseText
End With

Set hTable = html.querySelector(".cntr-list")

Dim td As Object, tr As Object, th As Object, r As Long, c As Long

For Each tr In hTable.getElementsByTagName("tr")
r = r + 1: c = 1

For Each th In tr.getElementsByTagName("th")

ws.Cells(r + 5, c) = th.innerText
c = c + 1

Next

For Each td In tr.getElementsByTagName("td")

ws.Cells(r + 5, c) = td.innerText

c = c + 1

Next
Next

End Sub

URL : https://www.tradlinx.com/unipass?type=1&blNo=DJSCBKIQ0N102401&blYr=2021

 

*현재 크롤링 결과값 (머릿말만 크롤링되고 본문이 크롤링되지 않습니다)

No. 컨테이너 넘버 규격 봉인번호

 

긴 글 읽어주셔서 감사합니다! ( _ _ )

전체 1

  • 2021-12-21 19:11
    For Each tr In hTable.getElementsByTagName("tbody")
    For Each tr In hTable.getElementsByTagName("tr")
    r = r + 1: c = 1
    
    For Each th In tr.getElementsByTagName("th")
    
    ws.Cells(r + 5, c) = th.innerText
    c = c + 1
    
    Next
    
    For Each td In tr.getElementsByTagName("td")
    
    ws.Cells(r + 5, c) = td.innerText
    
    c = c + 1
    
    Next
    Next
    Next

    로 바꿔보세요

     


전체 5,121
번호 카테고리 제목 작성자 작성일 추천 조회
알림
하루 딱 "1분", 진짜 쓰는 엑셀 꿀팁 👉 "오빠두엑셀" 인스타그램 오픈! (28)
트로피 오빠두엑셀 | 2021.10.12 | 추천 22 | 조회 744
트로피 오빠두엑셀 2021.10.12 22 744
공지사항 공지사항
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐ (21)
오빠두엑셀 | 2021.10.28 | 추천 27 | 조회 2315
트로피 오빠두엑셀 2021.10.28 27 2315
26015 함수/공식
New 혹시 Crtl + F 찾기 같은 함수와 있나요
태혁 | 11:39 | 추천 0 | 조회 17
태혁 11:39 0 17
26014 차트/그래프
New 해당 스크린샷의 그래프를 어떻게 만드는지 알려주세요
민석 | 11:39 | 추천 0 | 조회 15
민석 11:39 0 15
26005 함수/공식
New 한 숫자값에 대한, 홀수/짝수값을 나열하고 싶습니다. (4)
땅콩구리아빠 | 08:43 | 추천 0 | 조회 25
땅콩구리아빠 08:43 0 25
26000 VBA
New Rng.find 함수로 찾은 값을 DB안에 넣고싶습니다. (1)
가을전어 | 2022.01.16 | 추천 0 | 조회 29
가을전어 2022.01.16 0 29
25994 함수/공식
New 날짜 입력하면 당일 주야간 합구하는 함수나 방법을 배우러 왔습니다. (1)
현주아빠 | 2022.01.16 | 추천 0 | 조회 27
현주아빠 2022.01.16 0 27
25993 VBA
New workday 함수를 vba로.. (1)
Hong | 2022.01.16 | 추천 0 | 조회 22
Hong 2022.01.16 0 22
25989 차트/그래프
New 표 자동 입력 첨부파일 (2) 답변완료
미르 | 2022.01.16 | 추천 0 | 조회 32
미르 2022.01.16 0 32
25983 함수/공식
New 년도에 따른 출장 일수 구하고 싶은데 도움 부탁드립니다. (1)
kjin1020@naver.com | 2022.01.16 | 추천 0 | 조회 25
kjin1020@naver.com 2022.01.16 0 25
25982 함수/공식
New 입력하면 옆 셀에 자동으로 '1'이 입력되는 방법 (1) 답변완료
올리주인 | 2022.01.16 | 추천 0 | 조회 43
올리주인 2022.01.16 0 43
25973 함수/공식
New index match로 불러온 여러 목록의 사진을 다시 취합해서 불러오고 싶습니다. 첨부파일
배고픈콩콩 | 2022.01.16 | 추천 0 | 조회 36
배고픈콩콩 2022.01.16 0 36
25969 VBA
New 검색한 셀의 가로열 전부를 복사하는 방법이 알고 싶습니다. vba
ㅈㄱㄹ | 2022.01.16 | 추천 0 | 조회 24
ㅈㄱㄹ 2022.01.16 0 24
25945 함수/공식
New if 함수 중첩 (3)
shheee | 2022.01.15 | 추천 0 | 조회 49
shheee 2022.01.15 0 49
25938 기능/도구
New 수식이 포함된 시트에서 수식이 입력된 셀을 제외한 셀을 선택하는 방법을 알고자 합니다 (1)
yya**** | 2022.01.15 | 추천 0 | 조회 34
yya**** 2022.01.15 0 34
25932 문서서식
New 안녕하세요...도움을 요청합니다. 첨부파일 (1)
violet**** | 2022.01.15 | 추천 0 | 조회 46
violet**** 2022.01.15 0 46
25919 함수/공식
New 중복일 경우 1개만 카운트 첨부파일 (3) 답변완료
s77**** | 2022.01.14 | 추천 0 | 조회 79
s77**** 2022.01.14 0 79
25918 함수/공식
New 대출 이자율을 구하는 함수가 있을까요? (3)
늦깎이 | 2022.01.14 | 추천 0 | 조회 59
늦깎이 2022.01.14 0 59
25909 문서서식
New 셀값에 보이지 않는 값이 있습니다 이게 뭔지 알려주세요ㅠㅠ 첨부파일 (2) 답변완료
닉으로 | 2022.01.14 | 추천 0 | 조회 59
닉으로 2022.01.14 0 59
25908 함수/공식
New 혹시 매주 월요일마다 자동 작성되게 할 수 있나요? (5)
태혁 | 2022.01.14 | 추천 0 | 조회 81
태혁 2022.01.14 0 81
25905 대시보드
New 데이터 관리 때문에 질문 드립니다. 첨부파일 (4)
콜럼버스 | 2022.01.14 | 추천 0 | 조회 48
콜럼버스 2022.01.14 0 48
25896 함수/공식
수입, 지출누적액 구하는 방법 (6)
칼있으녀 | 2022.01.14 | 추천 0 | 조회 81
칼있으녀 2022.01.14 0 81
25892 VBA
VBA 크롤링 - innerText 의 특정 문자 제외하는 방법 도움요청드립니다. (5) 답변완료
98e | 2022.01.14 | 추천 0 | 조회 50
98e 2022.01.14 0 50
25888 함수/공식
일주일째 골머리 입니다 도움요청드립니다 첨부파일 (5)
k5188 | 2022.01.14 | 추천 0 | 조회 133
k5188 2022.01.14 0 133
25884 함수/공식
참조가 잘안되면 어떤 함수를 써야하나요 (3)
박모씨 | 2022.01.14 | 추천 0 | 조회 59
박모씨 2022.01.14 0 59
25876 피벗테이블
피벗으로 가공한 데이터 정렬 문의 첨부파일 (2) 답변완료
엑셀어린잉 | 2022.01.13 | 추천 0 | 조회 54
엑셀어린잉 2022.01.13 0 54
25875 함수/공식
ROW 함수를 이용한 셀좌표값을 SUMIF 문에 자동으로 입력되게 할수 없을까요? 첨부파일 (6)
속등가설분전반 | 2022.01.13 | 추천 0 | 조회 68
속등가설분전반 2022.01.13 0 68
25873 함수/공식
importhtml 함수 질문드립니다. 첨부파일 (1) 답변완료
감성카드 | 2022.01.13 | 추천 0 | 조회 59
감성카드 2022.01.13 0 59
25872 함수/공식
수식 질문 첨부파일 (6) 답변완료
k5188 | 2022.01.13 | 추천 0 | 조회 65
k5188 2022.01.13 0 65
25870 VBA
VBA로 IE다루는 중 웹페이지 대화상자 닫는 법 (1)
케케케 | 2022.01.13 | 추천 0 | 조회 40
케케케 2022.01.13 0 40
25869 문서서식
항상고맙습니다...어려운 부문이 있어 문의드립니다. 첨부파일
violet**** | 2022.01.13 | 추천 0 | 조회 50
violet**** 2022.01.13 0 50
25868 파워쿼리/피벗
쿼리 새로고침 시 중복데이터 (1)
뿌잉뿌잉 | 2022.01.13 | 추천 0 | 조회 36
뿌잉뿌잉 2022.01.13 0 36