VBA를 이용하여 euc-kr로 인코딩된 site 크롤링 방법

VBA
작성자
콩순이
작성일
2022-01-25 18:38
조회
205
엑셀버전 : M365

운영체제 : 윈도우10

아래와 같은 source 코드로 38.co.kr을 크롤링하고자 합니다.
근데 38.co.kr은 euc-kr이라서 크롤링이 불가능하다고 합니다. vba의 한계일까요?
혹시 고수님들은 이걸 크롤링하기 위해서 어떤 백도어를 구축하실지 궁금합니다.
아래 소스코드 전달드립니다.

앞에 점 삭제해서 확인 부탁드립니다..

.Sub Code_Info() '''' XMLHTTP
.         Dim http As New XMLHTTP60
.         Dim Html As New HTMLDocument
.         Dim strURL As String
.         Dim strText As String
.         Dim i, j.         For i = 2 To Range("A3000").End(xlUp).Row
.                 On Error GoTo -1
.                 On Error GoTo Catch
.                 strURL = "https://www.38.co.kr/html/fund/?o=v&no=1499&l=&page=10"
.                  http.Open "GET", strURL
.                  http.setRequestHeader "Content-Type", "text/html;charset=euc-kr"
.                  http.send.                  While http.readyState <> READYSTATE_COMPLETE
.                            DoEvents
.                  Wend
.                  Html.body.innerHTML = http.responseText
.                  Debug.Print "Start1"
.                  For j = 0 To Html.body.getElementsByTagName("td").Length - 1
.                              Debug.Print j & " " & Html.body.getElementsByTagName("td")(j).innerText
.                  Next j
.                  GoTo Finally
Catch:
.                  Range("C" & i) = "ERROR"
Finally:
.                  Next i
.        Set Html = Nothing
.        Set http = Nothing

End Sub

 

회원등급 : 2레벨
포인트 : 35 EP
총질문 : 1 개 (마감율 : 0%)
채택답변 : 0 개
전체 1

  • 2022-01-27 14:12

    콩순이님 안녕하세요.

    euc-kr 인코딩은 XML에서 지원하지 않아 전에 한 단계를 거쳐 변환 후 출력해야 합니다.

    HTML DOM 을 보면 responsebody 라는 값이 있는데, 그 값을 변환해서 원하는 값을 얻으실 수 있는데요.

    아래 코드를 적절히 수정해서 사용해보세요.

    Dim Converter As Object
    Set Converter = CreateObject("ADODB.Stream")
    
    Converter.Open
    Converter.Type = 1
    Converter.write = objHTTP.responsebody '<- objHTTP를 HTTP 요청 받아온 개체로 수정
    Converter.Position = 0
    Converter.Type = 2
    Converter.Charset = "Windows-1251"
    
        With oHTMLDoc  '<- 새로운 HTML 개체
            .Open
            .write Converter.ReadText
            .Close
        End With
    
    Converter.Close

    답변이 문제해결에 도움이 되셨길 바랍니다. 감사합니다.


전체 6,494
번호 카테고리 제목 작성자 작성일 추천 조회
알림
[🏆 진짜쓰는 실무엑셀 스터디] 1기 - 우수 졸업생 및 후기, 축하합니다! (8)
오빠두엑셀 | 2022.04.30 | 추천 10 | 조회 1322
오빠두엑셀 2022.04.30 10 1322
공지사항 함수/공식
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐ (65)
오빠두엑셀 | 2021.10.28 | 추천 81 | 조회 4654
오빠두엑셀 2021.10.28 81 4654
34504 피벗테이블
New 피벗테이블로 가공한 데이터 표양식 열기준으로 변경 가능 문의 첨부파일
우왕 | 13:19 | 추천 0 | 조회 16
우왕 13:19 0 16
34502 함수/공식
New 수식 오류 (2) 답변완료
kh**** | 05:08 | 추천 0 | 조회 20
kh**** 05:08 0 20
34499 VBA
New 이주일간의 고생 끝에 해결이 코앞인데요.
silverf**** | 2022.05.28 | 추천 0 | 조회 26
silverf**** 2022.05.28 0 26
34497 함수/공식
New 데이터 배열 바꾸기 (4) 답변완료
이지현한의사 | 2022.05.28 | 추천 0 | 조회 31
이지현한의사 2022.05.28 0 31
34494 파워쿼리/피벗
New 엑셀 계정별원장 시트 합치기 방법 문의 드립니다.
우렁각시탈 | 2022.05.28 | 추천 0 | 조회 22
우렁각시탈 2022.05.28 0 22
34492 VBA
New 엑셀에 드래그 앤 드롭으로 그림파일 삽입 (5)
banarchy | 2022.05.28 | 추천 0 | 조회 38
banarchy 2022.05.28 0 38
34477 문서서식
New 수식 복사 질문드려요.. ㅠㅠ 불금 퇴근하고싶습니다... 첨부파일 (3) 답변완료
김동률 | 2022.05.27 | 추천 0 | 조회 41
김동률 2022.05.27 0 41
34473 VBA
New 비고란에서 휴대폰번호 추출하기에 관해 문의드립니다. 첨부파일 (2) 답변완료
수메리안 | 2022.05.27 | 추천 0 | 조회 39
수메리안 2022.05.27 0 39
34472 기능/도구
New 스핀단추에서 증분변경시 0.1 씩 증감할려면 어떻게 해야 할까요? (1)
033cola | 2022.05.27 | 추천 0 | 조회 28
033cola 2022.05.27 0 28
34471 함수/공식
New 조건부서식 중복 2개이상 및 2개일때 서식좀 봐주세요 궁금합니다. 첨부파일 (3)
김주현 | 2022.05.27 | 추천 0 | 조회 44
김주현 2022.05.27 0 44
34469 문서서식
New 표의 행렬 변경 첨부파일 (4)
김학준 | 2022.05.27 | 추천 0 | 조회 40
김학준 2022.05.27 0 40
34465 차트/그래프
New 간트차트에 오늘 표시하는 방법 질문드려요
yoyoy**** | 2022.05.27 | 추천 0 | 조회 31
yoyoy**** 2022.05.27 0 31
34464 VBA
New Vba로 수식을 입력하려는데 오류가 납니다. (4)
silverf**** | 2022.05.27 | 추천 0 | 조회 45
silverf**** 2022.05.27 0 45
34451 함수/공식
New 제품별 코드 중복/단독 확인함수 첨부파일 (2)
다은지후아빠 | 2022.05.27 | 추천 -1 | 조회 48
다은지후아빠 2022.05.27 -1 48
34450 VBA
New VBA를 활용한 최단거리 계산(Pathfinder,카카오맵) 첨부파일
darc**** | 2022.05.27 | 추천 0 | 조회 37
darc**** 2022.05.27 0 37
34448 함수/공식
New countif 다양한 조건으로 만들고 싶어요~ 첨부파일 (2) 답변완료
김수달 | 2022.05.27 | 추천 0 | 조회 48
김수달 2022.05.27 0 48
34444 기능/도구
New 엑셀 빠른 도구 모음에 있는 '조명'이 무슨 기능인지 아시는분 계신가요?
월마리아 | 2022.05.26 | 추천 0 | 조회 46
월마리아 2022.05.26 0 46
34440 함수/공식
New 고객 리텐션, 접속 일수에 맞춰 데이터를 합산하는 함수/VBA 문의! 첨부파일
은혼 | 2022.05.26 | 추천 0 | 조회 22
은혼 2022.05.26 0 22
34439 차트/그래프
New 체크박스 선택에 따라 값이 바뀌는 차트의 데이터레이블 표시 문제 관련 첨부파일
Qwerty | 2022.05.26 | 추천 0 | 조회 26
Qwerty 2022.05.26 0 26
34437 함수/공식
New 국가만 찾아 올련면 첨부파일 (4) 답변완료
구름나그네 | 2022.05.26 | 추천 0 | 조회 42
구름나그네 2022.05.26 0 42
34433 함수/공식
New 함수관련 질문있습니다.
섭섭섭 | 2022.05.26 | 추천 0 | 조회 32
섭섭섭 2022.05.26 0 32
34427 함수/공식
특정 공휴일 제외 후 2달 뒤 날짜를 구할수 있는 함수 식이 있을까요? (1)
김태우 | 2022.05.26 | 추천 0 | 조회 42
김태우 2022.05.26 0 42
34417 피벗테이블
피벗테이블 외부 데이터 참조 후 새로고침 할 때 자꾸 암호를 입력하라고 떠요.. (2) 답변완료
forest choi | 2022.05.26 | 추천 0 | 조회 35
forest choi 2022.05.26 0 35
34416 함수/공식
날짜/시간 차이를 구하려면 어떻게 하면 좋을까요? 첨부파일 (2)
aron007 | 2022.05.26 | 추천 0 | 조회 41
aron007 2022.05.26 0 41
34415 VBA
VBA코드로 자동채우기 할때 유동범위는 어떻게 하나요 첨부파일 (2)
nam**** | 2022.05.26 | 추천 1 | 조회 41
nam**** 2022.05.26 1 41
34414 함수/공식
금지어 삭제하는 함수 (특정텍스트 범위내의 값을 제거 후 값 불러오기) 첨부파일 (1)
Jasper | 2022.05.26 | 추천 0 | 조회 42
Jasper 2022.05.26 0 42
34406 함수/공식
sum 함수 오류? 첨부파일 (1)
saechang | 2022.05.25 | 추천 0 | 조회 53
saechang 2022.05.25 0 53
34405 VBA
중복데이터가 많은데 맨 위에 있는 행의 데이터만 남길 수 있는 방법이 있을까요? 첨부파일 (3) 답변완료
오구 | 2022.05.25 | 추천 0 | 조회 69
오구 2022.05.25 0 69
34402 VBA
vba 특정문자 입력시 현재시간 구동 관련 첨부파일 (2)
1412 | 2022.05.25 | 추천 0 | 조회 46
1412 2022.05.25 0 46
34400 함수/공식
다른 셀 값 참조시 결과값이 0으로만 나오는 현상 문의 첨부파일 (3) 답변완료
forest choi | 2022.05.25 | 추천 0 | 조회 48
forest choi 2022.05.25 0 48