logo
languageKRdown
menu

XPath란? XPath 사용법과 예제로 배우는 웹 스크래핑 선택자

star

XPath의 기본 개념부터 작성 방법, 자주 사용하는 함수와 예제까지 쉽게 정리했습니다. 웹 스크래핑과 데이터 자동화를 시작하려는 분들을 위해 XPath 사용법을 단계별로 설명합니다.

8 분 열독

웹 크롤링이나 웹 스크래핑을 할 때 가장 많이 사용하는 기술 중 하나가 XPath입니다.

XPath를 사용하면 HTML 또는 XML 문서에서 원하는 요소를 정확하게 선택할 수 있어 데이터 수집 자동화에 매우 유용합니다.

예를 들어 XPath를 활용하면 다음과 같은 데이터를 자동으로 추출할 수 있습니다.

  • 쇼핑몰 상품 가격
  • 상품 이름
  • 리뷰 데이터
  • 뉴스 기사 제목
  • SNS 게시글

이번 글에서는 XPath란 무엇인지부터 XPath 사용법, 그리고 실무에서 자주 사용하는 XPath 예제까지 쉽게 설명합니다.

이 글을 읽으면 다음 내용을 이해할 수 있습니다.

  • XPath란 무엇인가
  • XPath 선택자 작성 방법
  • XPath 예제
  • 자주 사용하는 XPath 함수
  • Chrome에서 XPath 확인하는 방법

웹 스크래핑이나 자동화 작업을 시작하려는 분이라면 꼭 알아두어야 할 내용입니다.


XPath란?

XPath는 XML 또는 HTML 문서에서 특정 요소를 선택하기 위한 쿼리 언어입니다.

웹 페이지는 보통 다음과 같은 트리 구조(DOM 구조)로 이루어져 있습니다.

html

└ body

└ div

└ h1

XPath는 이러한 구조에서 특정 요소까지의 경로를 지정하는 방식으로 데이터를 찾습니다.

예를 들어 다음과 같은 XPath가 있다고 가정해 보겠습니다.

/bookstore/book/author

이 XPath는 다음 의미를 가집니다.

  • bookstore 아래
  • book 요소 안에 있는
  • author 요소 선택

즉 XPath는 폴더 경로처럼 HTML 구조를 따라가며 요소를 찾는 방식이라고 이해하면 쉽습니다.

XPath가 사용되는 곳

XPath는 다양한 자동화 작업에서 활용됩니다.

웹 스크래핑

웹 스크래핑에서는 특정 데이터를 자동으로 수집하기 위해 XPath를 사용합니다.

예를 들어 다음 데이터를 추출할 수 있습니다.

  • 쇼핑몰 상품 가격
  • 상품 이름
  • 리뷰
  • 뉴스 기사 제목

웹 크롤링 도구나 자동화 프로그램 대부분이 XPath를 지원합니다.

XML 데이터 분석

기업 시스템에서는 데이터 교환에 XML 형식이 많이 사용됩니다.

XPath를 사용하면 대량의 XML 데이터에서 필요한 정보만 선택적으로 추출할 수 있습니다.

API 응답 데이터 처리

SOAP 같은 XML 기반 API에서는 XPath를 사용해 응답 데이터를 분석합니다.

예를 들어 다음 데이터를 추출할 수 있습니다.

  • 상태 코드
  • 결과 데이터
  • 특정 필드 값

Chrome에서 XPath 확인하는 방법

XPath는 Chrome 개발자 도구를 사용해 쉽게 확인할 수 있습니다.

방법

  1. 웹페이지 열기
  2. F12 키 눌러 개발자 도구 실행
  3. 원하는 요소 우클릭 → 검사(Inspect)
  4. 요소 우클릭 → Copy → Copy XPath

이렇게 복사한 XPath를 사용하면 해당 요소를 선택할 수 있습니다.

또한 XPath Helper 같은 Chrome 확장 프로그램을 사용하면 XPath 테스트를 더 쉽게 할 수 있습니다.


절대 XPath와 상대 XPath 차이

XPath에는 절대 XPath와 상대 XPath 두 가지 방식이 있습니다.

절대 XPath

문서의 루트(html)부터 전체 경로를 지정하는 방식입니다.

/html/body/div/main/div/div/h1

하지만 절대 XPath는 다음과 같은 단점이 있습니다.

  • 웹페이지 구조가 조금만 변경되어도 XPath가 깨짐
  • 유지보수가 어려움

상대 XPath

상대 XPath는 문서 전체에서 조건에 맞는 요소를 찾는 방식입니다.

//h1

또는

//h1[text()="Octoparse 프리미엄 가격 & 패키지"]

상대 XPath의 장점

  • 페이지 구조 변경에 강함
  • 유지보수 쉬움
  • 웹 스크래핑에서 많이 사용

따라서 실제 웹 크롤링에서는 상대 XPath를 사용하는 것이 일반적입니다.


XPath 작성 방법

XPath 선택자를 작성하는 방법은 여러 가지가 있지만, 실무에서 가장 많이 사용하는 방법은 다음 4가지입니다.

1. 태그로 선택하기

가장 기본적인 XPath 작성 방법입니다.

//h2

이 XPath는 모든 h2 태그를 선택합니다.

특정 위치를 선택하려면 인덱스를 사용할 수 있습니다.

(//h2)[1]

이 경우 모든 h2 태그에서 첫 번째 내용을 선택합니다.

2. 속성으로 선택하기

HTML 요소에는 id나 class 같은 속성이 있습니다.

XPath에서는 이러한 속성을 사용해 요소를 선택할 수 있습니다.

태그이름[@속성이름="속성값"]

또한 특정 속성 값을 가진 모든 태그를 선택하려면 다음과 같이 작성할 수 있습니다.

//*[@속성이름="속성값"]

(//h2[@class="name"])[1]

또는

(//*[@class="name"])[1]

특히 id 속성은 페이지에서 유일한 경우가 많기 때문에 가장 안정적인 XPath 선택 방식입니다.

3. 텍스트로 선택하기

XPath에서는 텍스트 내용으로도 요소를 선택할 수 있습니다.

//h2[text()="무료 플랜"]

단, 이 방법은 텍스트가 변경되면 XPath가 동작하지 않을 수 있습니다.

4. 요소 관계로 선택하기

XPath는 요소 간 관계를 활용할 수도 있습니다.

관계XPath
부모 요소//div/..
자식 요소//div/span
자손 요소//body//span
이후 형제//div/following-sibling::span
이전 형제//div/preceding-sibling::span

(//h2[@class="name"])[1]/following-sibling::div[1]

이 방법은 라벨과 값이 함께 있는 구조에서 매우 유용합니다.


XPath에서 자주 사용하는 함수

실제 웹 페이지에서는 단순한 XPath만으로 원하는 데이터를 찾기 어려운 경우가 많습니다.

이때 XPath 함수가 도움이 됩니다.

contains()

contains() 함수는 특정 문자열을 포함하는 요소를 선택할 때 사용합니다.

//h2[contains(@class,"name")]

동적으로 변경되는 클래스 이름을 처리할 때 매우 유용합니다.

position()

position() 함수는 특정 위치에 있는 요소를 선택할 때 사용합니다.

//h2[position()=1]

첫 번째 요소 선택

또는

//h2[position()<=2]

첫 번째부터 두 번째 요소 선택

and / or / not 조건

XPath에서는 여러 조건을 결합할 수 있습니다.

//div[contains(@class,"item") and @data-type="1"]

또는

//div[@class="item" and not(@data-type="1")]

이러한 조건을 사용하면 보다 정확하게 원하는 요소를 선택할 수 있습니다.


정리

XPath는 HTML 또는 XML 문서에서 특정 요소를 선택하기 위한 언어입니다.

웹 스크래핑이나 데이터 자동화 작업에서 매우 중요한 역할을 합니다.

핵심 포인트

  • XPath는 HTML 요소를 선택하는 언어
  • 상대 XPath가 실무에서 더 많이 사용됨
  • contains(), position() 같은 함수 활용 가능
  • Chrome 개발자 도구로 XPath 확인 가능

XPath 기본 개념을 이해하면 웹 데이터 수집 자동화를 훨씬 쉽게 구현할 수 있습니다.


FAQ

XPath는 무엇인가요?

XPath는 XML 또는 HTML 문서에서 특정 요소를 선택하기 위한 쿼리 언어입니다.

XPath는 어디에 사용되나요?

웹 스크래핑, 웹 크롤링, 테스트 자동화, API 데이터 처리 등에 사용됩니다.

XPath와 CSS 선택자 차이는 무엇인가요?

CSS 선택자는 스타일 지정에 사용되며, XPath는 보다 복잡한 조건과 구조 기반 선택이 가능합니다.

몇 번의 클릭으로 웹 데이터 추출하기
코딩 없이 대부분 웹 사이트에서 쉽게 데이터를 추출할 수 있습니다.
무료 다운로드

핫 포스트

토픽 보러가기

지금부터 Octoparse 시작하세요.

다운로드

연관 글