Selenium VBA 엑셀 튜토리얼 (크롬 웹 스크래핑)ping)
⚡ 스마트 요약
Selenium Excel의 VBA는 자동화 기능을 제공합니다. Google Chrome HTML 웹 페이지에서 데이터를 추출하려면 다음을 사용하세요. Selenium 웹사이트를 열고, 클래스와 태그를 이용해 테이블 요소를 찾고, 그 결과를 워크시트 셀에 쓰는 데 사용할 수 있는 타입 라이브러리와 WebDriver 메서드입니다.

데이터 스크래핑이란 무엇인가요?ping 사용 Selenium?
Selenium 스크래핑을 용이하게 하는 자동화 도구입니다.ping HTML 웹 페이지에서 정보를 추출하고 웹 스크래핑을 수행합니다.ping 과 Google Chrome엑셀에서는 Selenium 이 형식 라이브러리를 사용하면 VBA가 더 이상 사용되지 않는 인터넷 익스플로러 엔진 대신 실제 브라우저를 제어할 수 있습니다.
데이터 스크래핑 전에 엑셀 매크로를 준비하는 방법ping 사용 Selenium
데이터 스크래핑을 시작하기 전에 Excel 매크로 파일에서 수행해야 하는 몇 가지 사전 요구 사항이 있습니다.ping 프로세스.
필수 조건은 다음과 같습니다.
단계 1) 엑셀 기반 매크로를 열고 엑셀의 개발자 옵션에 액세스합니다.
단계 2) 개발자 리본 메뉴에서 Visual Basic 옵션을 선택하세요.
단계 3) 새 모듈을 삽입합니다.
단계 4) 새로운 서브루틴을 초기화하고 test2라는 이름을 지정합니다.
Sub test2() End Sub
모듈의 결과는 다음과 같습니다.
단계 5) 도구 탭에서 참조 옵션에 액세스하여 참조하십시오. Selenium 타입 라이브러리. 이 라이브러리는 오픈 소스 환경을 지원합니다. Google Chrome 또한 매크로 스크립팅을 용이하게 합니다.
이제 엑셀 파일이 브라우저와 상호 작용할 준비가 되었습니다. 다음 단계는 데이터 스크래핑을 용이하게 하는 매크로 스크립트를 통합하는 것입니다.ping HTML 형식으로.
여는 방법 Google Chrome VBA 사용
여는 방법은 다음과 같습니다. Google Chrome VBA를 사용하여.
단계 1) 아래와 같이 서브루틴 내의 변수를 선언하고 초기화하십시오.
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer
단계 2) 열기 위해 Google Chrome 사용 Selenium VBA를 사용하여 드라이버를 작성합니다. "Chrome"을 시작하고 F5 키를 누릅니다.
코드는 다음과 같습니다.
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer driver.Start "Chrome" Application.Wait Now + TimeValue("00:00:20") End Sub
해당 모듈의 결과는 다음과 같습니다.
웹사이트를 여는 방법 Google Chrome VBA 사용
일단 접속할 수 있게 되면 Google Chrome VBA를 사용하여 다음 단계는 VBA를 통해 웹사이트에 접근하는 것입니다. 이는 Get 함수를 통해 가능하며, 이 함수에서는 URL 큰따옴표로 묶어서 전달합니다.
해당 모듈은 다음과 같습니다.
F5 키를 눌러 매크로를 실행하세요. 다음 웹페이지가 열립니다. Google Chrome 표시된 대로.
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer driver.Start "Chrome" driver.Get "https://demo.guru99.com/test/web-table-element.php" Application.Wait Now + TimeValue("00:00:20") End Sub
이제 엑셀 매크로가 스크래핑 작업을 수행할 준비가 되었습니다.ping 작업. 다음 단계에서는 정보가 어떻게 활용될 수 있는지 보여줍니다.trac테드는 지원함으로써 Selenium 그리고 VBA.
VBA를 사용하여 웹사이트에서 정보를 추출하는 방법
데이 트레이더가 웹사이트에서 매일 데이터를 확인하고 싶다고 가정해 보겠습니다. 데이 트레이더가 버튼을 클릭할 때마다 시장 데이터가 자동으로 엑셀로 가져와져야 합니다.
위 웹사이트에서 요소를 검사하고 데이터 구조를 살펴보려면 Ctrl + Ctrl 키를 누르세요. 아래 HTML 소스 코드를 보려면 Ctrl + Ctrl 키를 누르세요. Shift + 나.
<table class="datatable">
<thead>
<tr>
<th>Company</th>
<th>Group</th>
<th>Pre Close (Rs)</th>
<th>Current Price (Rs)</th>
<th>% Change</th>
</tr>
보시는 바와 같이 데이터는 단일 HTML 테이블 구조로 되어 있습니다. 따라서 HTML 테이블에서 전체 데이터를 추출하려면 헤더 정보와 테이블과 관련된 해당 데이터를 추출하는 매크로를 설계해야 합니다. 아래 작업을 수행하십시오.
단계 1) HTML 헤더 정보를 컬렉션으로 받아 순회하는 for 루프를 작성하세요. Selenium 드라이버는 그림과 같이 FindElementByClass() 및 FindElementByTag() 메서드를 사용하여 헤더 정보를 찾습니다.
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer rowc = 2 Application.ScreenUpdating = False driver.Start "chrome" driver.Get "https://demo.guru99.com/test/web-table-element.php" For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr") cc = 1 For Each t In th.FindElementsByTag("th") Sheet2.Cells(1, cc).Value = t.Text cc = cc + 1 Next t Next th
단계 2) 다음으로 Selenium 드라이버는 비슷한 접근 방식을 사용하여 테이블 데이터를 찾습니다. 다음 코드를 작성하세요.
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer rowc = 2 Application.ScreenUpdating = False driver.Start "chrome" driver.Get "https://demo.guru99.com/test/web-table-element.php" For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr") cc = 1 For Each t In th.FindElementsByTag("th") Sheet2.Cells(1, cc).Value = t.Text cc = cc + 1 Next t Next th For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr") columnC = 1 For Each td In tr.FindElementsByTag("td") Sheet2.Cells(rowc, columnC).Value = td.Text columnC = columnC + 1 Next td rowc = rowc + 1 Next tr Application.Wait Now + TimeValue("00:00:20") End Sub
Excel은 시트의 Range 속성 또는 Cells 속성을 사용하여 초기화할 수 있습니다. VBA 스크립트의 복잡성을 줄이기 위해 컬렉션 데이터는 통합 문서의 2번 시트의 Cells 속성으로 초기화됩니다. Text 속성을 사용하면 텍스트를 HTML 태그 아래에 배치할 수 있습니다.
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer rowc = 2 Application.ScreenUpdating = False driver.Start "chrome" driver.Get "https://demo.guru99.com/test/web-table-element.php" For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr") cc = 1 For Each t In th.FindElementsByTag("th") Sheet2.Cells(1, cc).Value = t.Text cc = cc + 1 Next t Next th For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr") columnC = 1 For Each td In tr.FindElementsByTag("td") Sheet2.Cells(rowc, columnC).Value = td.Text columnC = columnC + 1 Next td rowc = rowc + 1 Next tr Application.Wait Now + TimeValue("00:00:20") End Sub
VBA 모듈은 다음과 같습니다.
단계 3) 매크로 스크립트가 준비되면 서브루틴을 Excel 단추에 할당하고 VBA 모듈을 종료합니다. 단추 이름을 새로 고침(Refresh) 또는 적절한 이름으로 지정합니다. 이 예에서는 단추 이름을 새로 고침(Refresh)으로 지정했습니다.
단계 4) 아래와 같은 결과를 보려면 새로고침 버튼을 누르세요.
단계 5) 엑셀에서 얻은 결과와 실제 결과를 비교하세요. Google Chrome.












