상세 컨텐츠

본문 제목

13. XPath(XML Path Language)

데이터 분석/웹 스크래핑

by 알파고제로 2023. 11. 1. 08:59

본문

■ XPath란?

  • XML문서의 특정 노드의 위치를 찾을 때 사용되는 규칙
  • XML 문서 안의 요소와 속성들을 탐색한다.
  • 특정 노드를 표현하는 방식은 절대경로와 상대경로 방식이 있다.
  • 브라우저에서 개발자 모드(F12) - 특정 노드 선택 후 - [Copy]-[Copy XPath] 혹은 [Copy full XPath] 를 이용
노트 이름 종류
/ 루트 노드부터 순서대로 탐색
// 지정된 노드에서부터 순서대로 탐색
. 현재 노드를 선택
.. 현재의 부모 노드를 선택
@ 속성 노드를 선택
<?xml version="1.0" encoding="UTF-8"?>

<bookstore>
	<book>
    	<title lang="en">Harry Potter</title>
        <author>J K. Rowling</author>
        <year>2005</year>
        <price>29.99</price>
    </book>
</bookstore>

 

  • Predicates
Node 종류
/bookstore/book[1] /bookstore 자식인 첫 번째 book요소를 선택
/bookstore/book[last()] 마지막 book 요소 선택
/bookstore/book[last()-1] 마지막 요소보다 하나 위의 book 요소 선택
/bookstore/book[position()<3] 첫 번째, 두 번째 요소 선택
//title[@lang] lang이라는 속성 이름을 가진 모든 title 요소 선택
//title[@lang=‘en’] lang이라는 속성 이름이 en인 모든 title 요소 선택
/bookstore/book[price > 35] price요소 값이 35를 초과하는 모든 book 요소 선택
/bookstore/book[price > 35]/title price 35를 초과하는 book 요소의 title 요소를 선택
/bookstore/book/price[text()] price요소의 text 가져옴

 

  • Selecting Unknown Nodes
Node 종류
/bookstore/* bookstore의 자식 요소들을 모두 선택
//* 문서 내의 모든 요소 선택
//title[@*] 적어도 하나의 속성을 갖는 모든 title 요소 선택

 

<html lang="en">
<head>
   <meta charset="UTF-8">
   <title> XPath Test </title>
</head>
<body>
    <h1> testReport </h1>
    <h1> testSample </h1>
    <div class="result"> test1
        <br>
        <span class="passRate">90%</span>
        <br>
        <span class="runRate">100%</span>
     </div>
</body>
</html>

 

'데이터 분석 > 웹 스크래핑' 카테고리의 다른 글

01. RNN의 활용  (0) 2023.12.21
12. Selenium 모듈  (0) 2023.11.01
11. BeautifulSoup 모듈  (0) 2023.10.31

관련글 더보기

댓글 영역