Dim driver As New Selenium.ChromeDriver 'sub안에서 실행하면 끝날때 자동 종료 되기 때문에 밖에서 실행시켜놓는다.
-------------------------------------------------------------------------
Sub 브라우저실행()
driver.Get " http://www.encar.com/dc/dc_carsearchlist.do?carType=kor&searchType=model&TG.R=A#!%7B%22action%22%3A%22(And.Hidden.N._.(C.CarType.Y._.(C.Manufacturer.%EC%A0%9C%EB%84%A4%EC%8B%9C%EC%8A%A4._.(C.ModelGroup.G80._.Model.G80.))))%22%2C%22toggle%22%3A%7B%7D%2C%22layer%22%3A%22%22%2C%22sort%22%3A%22ModifiedDate%22%2C%22page%22%3A1%2C%22limit%22%3A20%7D "
End Sub
-------------------------------------------------------------------------
Sub 데이터가져오기()
Dim i As Long
행 = 6
페이지 = 1
Do
For i = 1 To 21
If driver.FindElementByCss("#sr_normal > tr:nth-child(" & i & ") ").CssValue("display") = "table-row" Then
Cells(행, "b").Value = driver.FindElementByCss("#sr_normal > tr:nth-child(" & i & ") > td.inf > a").Text
Cells(행, "c").Value = driver.FindElementByCss("#sr_normal > tr:nth-child(" & i & ") > td.inf > span.detail > span.yer").Text
Cells(행, "g").Value = driver.FindElementByCss("#sr_normal > tr:nth-child(" & i & ") > td.prc_hs > strong").Text
Cells(행, "h").Value = driver.FindElementByCss("#sr_normal > tr:nth-child(" & i & ") > td.inf > a").Attribute("href")
행 = 행 + 1
End If
Next i
페이지 = 페이지 + 1
If 페이지 = 11 Then Exit Do
driver.FindElementByCss("#pagination >span:nth-child(" & 페이지 & ") > a").Click '다음페이지
Application.Wait Now() + TimeSerial(0, 0, 2) '대기시간
Loop
End Sub
bot 감지로 현재 실행되지 않는다. FindElementByCss 와 FindElementsByCss "s"의 차이가 있고, text 값, 속성값 가져오는 방법이 조금 다르다. 다음페이지 넘어갈때 click을 직접 입력한다.
'크롤링_crawling' 카테고리의 다른 글
크롤링 FUNCTION (0) | 2023.04.18 |
---|---|
winhttp 크롤링 vba 기본 code (0) | 2023.04.03 |
selenium 셀레니움 기본 크롬오픈 최소화 (0) | 2023.04.01 |
셀레니움 selenium 오류 -2147217392(80041010) 런타임 자동화 오류 (0) | 2023.03.31 |
크롤링 Selenium 설치 (0) | 2023.03.31 |