-
정규식 패턴 짜는 게 재미져서 그걸로 파싱하려다가
카페에서 항상 도움받는 C*******e님의 추천으로 HTML에서 바로 자료 가져오는 걸로 노선을 수정.
클래스네임으로 가져오는 거라 일도 아님.
웹파싱은 서버에 무리를 줄 수 있어서 URL은 일부만.
제품명, 스펙, 가격을 가져오는 코드이다.
Option ExplicitOption Base 1Sub Macro()Dim oHtml As New HTMLDocument '도구 - 참조 - Microsoft HTML Object Library 체크Dim oElement As ObjectDim URL As StringDim ClassName(3) As StringDim i As Integer, j As IntegerDim v() As StringURL = "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.WaitForResponseoHtml.body.innerHTML = .responseTextEnd With'제품 리스트만큼 재배열ReDim v(oHtml.getElementsByClassName(ClassName(1)).Length, 3)For j = 1 To 3i = 1For Each oElement In oHtml.getElementsByClassName(ClassName(j))Select Case j'제품명, 스펙 가져오기Case 1, 2v(i, j) = oElement.innerTexti = i + 1'판매가격일 때 가격 가져오기Case 3If InStr(oElement.innerText, "판매가격") Thenv(i, j) = oElement.innerTexti = i + 1End IfEnd SelectNext oElementNext j'셀에 출력Range("A1").Resize(UBound(v), 3) = vEnd Subcs 'VB(A)' 카테고리의 다른 글
여러 시트를 쉽게 이동하기 (0) 2018.01.05 [정규식] 텍스트 파일을 조건에 맞게 쪼개서 가져오기 (0) 2017.12.31 [월보용] 데이터 합치기 (0) 2017.09.01 월보 취합 서식 (0) 2017.08.29 난수 생성기(로또) (0) 2017.06.24 댓글