웹 크롤링은 인터넷에서 정보를 수집하는 자동화된 방법입니다.
주로 파이썬으로 크롤링을 많이 이용하지만 저는 자바를 통해서 구현을 하고자 했습니다.
자바와 Selenium을 함께 사용하면 웹 사이트의 데이터를 효율적으로 수집할 수 있습니다.
이 글에서는 Selenium WebDriver를 설정하고 간단한 웹 크롤링 예제를 통해 기본적인 사용법을 알아보겠습니다.
Selenium WebDriver 설정하기
Selenium WebDriver는 여러 브라우저에서 웹 애플리케이션을 자동화하기 위한 도구입니다. 자바를 사용하여 Selenium WebDriver를 설정하려면 다음 단계를 따르세요.
Selenium 라이브러리 추가:
Maven 프로젝트를 사용하는 경우, pom.xml 파일에 Selenium 의존성을 추가합니다.
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>LATEST_VERSION</version>
</dependency>
</dependencies>
gradle파일의 경우에는 다음과 같습니다.
// https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-support
implementation 'org.seleniumhq.selenium:selenium-support:4.14.1'
이 부분에서 최신버전의 경우에는 maven repository에서 selenium-java를 검색하시면 최신버전을 확인하실 수 있습니다.
아래의 사이트에서 검색하시면 됩니다
브라우저 드라이버 다운로드:
사용하고자 하는 브라우저의 드라이버(ChromeDriver, GeckoDriver 등)를 다운로드하고, 시스템 경로에 추가합니다.
해당 글에서는 크롬 드라이버를 통해서 다운로드 하는 방법을 설명해드리겠습니다.
ChromeDriver 다운로드
Google Chrome 버전 확인: ChromeDriver와 Google Chrome 버전은 호환되어야 합니다. 먼저 사용 중인 Chrome의 정확한 버전을 확인해야 합니다. 이는 Chrome 브라우저에서 chrome://settings/help를 방문하여 할 수 있습니다.
ChromeDriver 다운로드 페이지 방문: 웹 브라우저에서 ChromeDriver 다운로드 페이지로 이동합니다.
적절한 ChromeDriver 선택: 사용 중인 운영 체제(Windows, macOS, Linux)와 일치하는 ChromeDriver 버전을 찾습니다. 그리고 Google Chrome 버전과 호환되는 ChromeDriver를 선택합니다.
다운로드 및 압축 해제: 해당 드라이버를 다운로드한 후 압축을 해제합니다. 이렇게 하면 실행 가능한 ChromeDriver 파일을 얻을 수 있습니다.
https://chromedriver.chromium.org/downloads
ChromeDriver - WebDriver for Chrome - Downloads
Current Releases If you are using Chrome version 115 or newer, please consult the Chrome for Testing availability dashboard. This page provides convenient JSON endpoints for specific ChromeDriver version downloading. For older versions of Chrome, please se
chromedriver.chromium.org
해당 사이트에 접속하셔서 다운로드를 진행해주시면 되는데 크롬버전이 115부터는 드라이버 패키지가 같이 첨부되어 있는게 아니라 따로 다운을 받아야합니다!!
JSON 엔드포인트를 제공해주는데
https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json
여기에 접속하시게 되면 제이슨파일이 ~~~ 하면서 계속 나와있습니다.
이중에서 자신의 버전에 맞는 것을 ctrl+F 누른 후 버전을 입력해서 알맞은 버전에서 드라이버라고 적혀있는 제이슨 파일을
찾아서 해당사이트로 접속을 하시게 되면 압축파일을 다운로드 하게 되는데 그 파일을 기존의 다운받은 파일에다가 넣어주면 됩니다.
이제 셀레니움을 통해서 크롤링을 하기 위한 다운로드 작업이 끝났습니다.
이제 원하는 명령어를 이용해서 작성해주면 되는데 단게별로 설명하겠습니다.
1. 웹 페이지 열기
WebDriver 인스턴스를 사용하여 웹 페이지를 열 수 있습니다.
driver.get("http://www.example.com");
2.웹 페이지에서 요소 찾기 및 상호 작용
Selenium에서는 다양한 방법으로 웹 페이지의 요소를 찾을 수 있습니다.
가장 일반적인 방법은 findElement 메소드와 함께 다음 선택자를 사용하는 것입니다.
ID
클래스 이름
태그 이름
CSS 선택자
XPath
예를 들어, 웹 페이지에서 버튼을 클릭하는 방법은 다음과 같습니다.
WebElement button = driver.findElement(By.id("submit-button"));
button.click();
데이터 추출
웹 페이지에서 텍스트를 추출하는 것은 매우 간단합니다.
예를 들어, 특정 요소의 텍스트를 가져오려면 다음과 같이 합니다.
WebElement element = driver.findElement(By.id("content"));
String contentText = element.getText();
종료
작업을 마친 후에는 WebDriver를 종료하여 브라우저를 닫고 관련 자원을 정리해야 합니다.
driver.quit();
이 글에서는 Selenium WebDriver를 사용하여 자바로
기본적인 웹 크롤링을 수행하는 방법에 대해 알아보았습니다.
'Programming > Java' 카테고리의 다른 글
| Model1, Model2의 차이 (0) | 2023.09.08 |
|---|---|
| [spring data jpa] Native Query를 이용한 Join연산 (0) | 2023.09.05 |
| [Java] Builder pattern -이해 및 사용방법 (0) | 2023.08.31 |
| JSP Servlet :: DAO, DTO, Controller 이용한 MVC패턴 CRUD 메모장 만들기 (1) (0) | 2023.08.08 |
| Java soket,dialog,button을 활용한 채팅창 만들기 (0) | 2023.07.17 |