셀레니움(Sellenium) XPath로 쉽게 사용하기

2019. 5. 13. 06:32

셀레니움(Sellenium)은 웹페이지를 코드로 콘트를 할 수 있기 때문에 굉장히 유용한 파이썬 패키지이다. 하지만, 특정 태그를 지정하기 어려운 문제가 간혹 발생한다. 이럴 때 사용할 수 있는 방법이 바로 Xpath이다.

오늘은 Sellenium에서 XPath를 이용해서 쉽게 태그를 찾는 방법에 대해서 알아보도록 하겠다.


기분_좋음



XPath란?

Xpath는 마크업 언어에서 특정 요소를 찾기 위한 경로(path)를 나타내는 언어이다. 그럼 마크업 언어는 무엇인가? 마크업언어는 태그 등을 이용해 문서의 구조를 명기하는 언어이다. HTML도 태그로 이루어진 언어이므로 마크업 언어의 하나이고, Xpath를 사용할 수 있다.

보통은 ID나 클래스 이름으로 특정 요소를 찾는데, XPath를 이용하면 쉽게 특정 요소를 지정할 수 있다.


Xpath의 기본 구문은 아래와 같다.

 //태그 이름[@attribute = 'Value']


그리고 절대 경로와 상대 경로가 있다. 절대 경로는 문서 앞단부터 경로를 다 지정하는 방법이고, 상대 경로는 HTML DOM의 중간에서 시작한다.

 - 절대 Xpath :  / html / body / div [2] / div / div [2] / div [1] / div [2] / form / div / input

 - 상대 XPath 예:  // div [@ class = 'form-group'] // 입력 [@ id = '사용자 - 메시지'] 



위의 내용들 잘 몰라도 사용하기는 정말 쉽다.

Xpath에 대한 내용은 그래도 기초적인 백그라운드를 알기 위해 설명했지만, 실제 사용하는 방법은 정말 쉽다. Chrome에서 Xpath를 자동으로 만들어주기 때문이다.

크롬을 실행하고 Xpath를 만들고 싶은 태그를 찾는다. 마우스 오른쪽 버튼을 클릭한 후 [Copy] - [Copy XPath]를 선택하면 클립보드에 XPath가 저장된다.


XPath찾기

( 크롬에서 쉽게 Xpath를 찾을 수 있다. )


이제 파이썬 코드로 와서, find_elements_by_xpath( [Xpath주소 붙여넣기] ) 하면 된다. 

  find_elements_by_xpath( '//*[@id="account"]/div/a/i' )


기존에 클래스명이나 ID를 이용해서 찾는 것보다 굉장히 쉽고 편리하다.



오늘은 이렇게 셀레니움(Sellenium)의 XPath를 이용해서 특정 요소를 쉽게 찾는 방법에 대해서 알아보았다. Xpath를 직접 정의해야 한다면 어렵지만, 크롬을 이용해서 쉽게 XPath를 만들어 사용할 수 있었다.


오픈API를 사용하면 다양한 재미있는 일들을 해 볼 수 있다. 파이썬을 활용한 오픈API 사용이 궁금하다면 아래 글을 참조해보자.
(참조: 오픈API를 활용한 사례는 어떤 것들이 있을까?)


파이썬을 직접 활용하는 것만큼 효과적인 공부는 없다. 그래서 파이썬을 활용해서 할 수 있는 일드을 정리해보았다. 자세한 내용은 아래 포스팅을 참조해보자.
( 참조: 파이썬 활용, 파이썬 프로젝트로 할 수 있는 일들을 알아보자! )

태그 :

댓글()