ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 웹페이지 파싱
    VB(A) 2017. 9. 23. 12:37

    정규식 패턴 짜는 게 재미져서 그걸로 파싱하려다가

    카페에서 항상 도움받는 C*******e님의 추천으로 HTML에서 바로 자료 가져오는 걸로 노선을 수정.

    클래스네임으로 가져오는 거라 일도 아님.

    웹파싱은 서버에 무리를 줄 수 있어서 URL은 일부만.

    제품명, 스펙, 가격을 가져오는 코드이다.


    Option Explicit
    Option Base 1
     
    Sub Macro()
     
        Dim oHtml As New HTMLDocument   '도구 - 참조 - Microsoft HTML Object Library 체크
        Dim oElement As Object
        Dim URL As String
        Dim ClassName(3As String
        Dim i As Integer, j As Integer
        Dim v() As String
        
        URL = "http://%D4%B7%C2&splist_sbno%5B%5D=23027#ProductList"
        ClassName(1= "prd_name"   '제품명
        ClassName(2= "prd_subTxt" '스펙
        ClassName(3= "prd_price"  '가격
        
        '페이지 소스 가져오기
        With CreateObject("WINHTTP.WinHTTPRequest.5.1")
            .Open "GET", URL, False
            .send
            .WaitForResponse
            oHtml.body.innerHTML = .responseText
        End With
        
        '제품 리스트만큼 재배열
        ReDim v(oHtml.getElementsByClassName(ClassName(1)).Length, 3)
        
        For j = 1 To 3
            i = 1
            
            For Each oElement In oHtml.getElementsByClassName(ClassName(j))
            
                Select Case j
                
                    '제품명, 스펙 가져오기
                    Case 12
                        v(i, j) = oElement.innerText
                        i = i + 1
                    
                    '판매가격일 때 가격 가져오기
                    Case 3
                        If InStr(oElement.innerText, "판매가격"Then
                            v(i, j) = oElement.innerText
                            i = i + 1
                        End If
                End Select
            
            Next oElement
        Next j
        
        '셀에 출력
        Range("A1").Resize(UBound(v), 3= v
     
    End Sub
     
    cs

    통합 문서1.xlsm




    'VB(A)' 카테고리의 다른 글

    여러 시트를 쉽게 이동하기  (0) 2018.01.05
    [정규식] 텍스트 파일을 조건에 맞게 쪼개서 가져오기  (0) 2017.12.31
    [월보용] 데이터 합치기  (0) 2017.09.01
    월보 취합 서식  (0) 2017.08.29
    난수 생성기(로또)  (0) 2017.06.24

    댓글