일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- DART
- Coroutine
- 공자명언
- Firebase
- Flutter
- FSM
- 소울칼리버6
- bash
- 코틀린
- 명언모음
- Freesound
- 이모지
- 벤자민플랭클린
- 오픈소스
- jetpack compose
- Android
- androidx
- 장자명언
- 넷플릭스
- 파이썬
- ASMR
- 이모지메모
- recyclerview
- 좋은글필사하기
- 1인개발자
- Linux
- kotlin
- Streaming
- 공부집중
- 명심보감
Archives
- Today
- Total
Vintage appMaker의 Tech Blog
Webscraping의 기초 - XPath 본문
Xpath가 필요할 때는, HTML 내에서 중요한 요소를 가져오는 WebScraping을 사용할 때가 대부분이다. 즉, 웹화면에서 원하는 정보를 가져오고자 할 때, Chrome 브라우저의 개발자 모드에서 Xpath를 가져올 때 사용된다.
1. 1 xpath의 정의
- Xpath란:
- XPath는 XML 문서 내에서 원하는 요소나 속성을 선택하기 위한 경로 언어
- "XML Path Language"의 약자
- XML 문서의 구조를 탐색하고 쿼리하기 위한 표준화된 방법을 제공
- Xpath 사용법:
- XPath를 사용하여 XML 문서에서 원하는 요소나 속성을 선택하고 조작하는 방법은 다음과 같다:
- 요소 선택:
/
: 루트 요소를 선택합니다.//
: 현재 노드에서 재귀적으로 모든 하위 요소element_name
: 특정 요소 이름을 지정하여 해당 요소를 선택[predicate]
: 조건을 추가하여 요소를 선택
- 속성 선택:
@attribute_name
: 특정 속성을 선택
- 조건 추가:
[@attribute_name='value']
: 특정 속성의 값이 지정된 값과 일치하는 요소를 선택[position()]
: 요소의 위치를 기반으로 선택
- 함수 사용:
text()
: 텍스트 노드를 선택contains()
: 지정된 문자열이 포함된 요소를 선택count()
: 선택된 요소의 개수를 반환concat()
: 문자열을 연결
- 예제:
//bookstore/book
:- 모든 bookstore 요소의 하위에 있는 book 요소를 선택
//book[@category='fiction']
:- 모든 카테고리가 'fiction'인 book 요소를 선택
//bookstore/book[1]
:- 첫 번째 book 요소를 선택합니다.
//book[price<30]
:- 가격이 30보다 작은 모든 book 요소를 선택
//book[contains(title, 'Harry Potter')]
:- 제목에 'Harry Potter' 문자열을 포함하는 book 요소를 선택
1. 2 chrome에서 xpath를 찾는 법
Google Chrome 브라우저에서 XPath를 찾는 방법은 다음과 같다/
- 개발자 도구 열기:
- 웹 페이지에서 마우스 오른쪽 버튼을 클릭
- "검사" 선택 or 단축키인
Ctrl + Shift + I
(Windows/Linux)Cmd + Opt + I
(Mac)를 사용
- Elements 탭으로 이동:
- 개발자 도구가 열리면 Elements 탭이 활성화
- 마우스로 이동하여 HTML 및 DOM 요소로 이동
- 요소 선택:
- Elements 탭에서 마우스를 사용
- XPath를 찾으려는 요소를 선택
- XPath 복사:
- 선택된 Elememt에서 마우스 우클릭
- 복사 메뉴 -> XPath 복사
- 검색창에서 XPath 사용:
Ctrl(Command) + F
- XPath를 입력
- enter를 누르거나 화살표를 이용하여 이동
- XPath에 해당하는 요소가 강조 표시
1. 3 chrome에서 console에서 xpath 출력
- 크롬 브라우저 열기: 원하는 웹 페이지를 연다.
- 개발자 도구 열기: 마우스 오른쪽 버튼을 클릭하고 "검사"를 선택하거나, 단축키
Ctrl + Shift + I
(Windows/Linux) 또는Cmd + Opt + I
(Mac)를 사용하여 개발자 도구를 연다. - 콘솔 탭으로 이동: 개발자 도구가 열리면 Console 탭을 선택한다.
- XPath 사용 태그 출력: 아래 코드를 콘솔에 입력한다.
var listItems = document.evaluate("원하는XPATH", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0; i < listItems.snapshotLength; i++) {
console.log(listItems.snapshotItem(i));
}
#TODO
다음은 예제이다.
- vitageappmaker.tistory.com으로 이동한다.
- 개발자 도구 화면으로 이동한다.
- 리스트를 요소를 선택한다. xpath를 복사한다.
- xpath를 수정한다.
//*[@id="mArticle"]/div[3] 를 다음과 같이 변경한다.
싱글 따옴표로 변경하는 것에 유의한다.
//*[@id='mArticle']//div[@class='list_content']
6. console 탭에서 다음을 입력( 붙여넣기) 하고 enter
```javascript
var listItems = document.evaluate("//*[@id='mArticle']//div[@class='list_content']", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0; i < listItems.snapshotLength; i++) {
console.log(listItems.snapshotItem(i));
}
Comments