-
[나도 코딩]웹 스크래핑 2. XpathPrograming Language/Python 2020. 11. 2. 16:25반응형
웹 스크래핑
Xpath
이 글은 나도코딩님의 [파이썬 코딩 무료 강의 (활용편3)]을 보고 공부한 내용입니다.
1. Xpath 이해하기
Xpath(XML path language)란?
- HTML 문서의 특정 부분의 위치를 찾을 때 사용하는 언어
Xpath 구성
- /html/body/div/div/div/div/span/a...
- '/' : '/' 아래의 한단계 아래에 자식 요소 지정
- '//' : '//' 아래의 모든 요소 지정
- @ : xpath에서 속성을 지정할 때 사용
예시
/학년/반 '학년' 아래 자식인 모든 '반' 요소를 선택 //@반 '반'이라는 속성을 모두 선택 //반[@학생='1번'] 학생이라는 속성이 1번인 모든 반 요소를 선택 Xpath 용어
- 부모: 현재 기준으로 상위 항목 ex) 학년기준 학교는 부모 요소
- 자식: 현재 기준으로 하위 항목 ex) 학년기준 반은 자식 요소
- 형제: 현재 기준으로 같은 노드에 있는 항목 ex) <학생 value='1번'> 기준 <학생 value='2번'> 은 형제요소
Xpath 맛보기
<학교 이름='데이터고등학교'> <학년 value='1학년'> <반 value='1반'> <학생 value='1번', 학번='1-1-1'>제니</학생> <학생 value='2번', 학번='1-1-2'>지수</학생> <학생 value='3번', 학번='1-1-3'>리사</학생> <학생 value='4번', 학번='1-1-4'>로제</학생> <학생 value='5번', 학번='1-1-5'>민영</학생> </반> <반 value='2반'/> <반 value='3반'/> <반 value='4반'/> </학년> <학년 value='2학년'/> ... 3반 민영 <...> <학년 value='3학년'/> </학교>
HTML 코드
2학년 3반의 리사을 찾고 싶을 때?
- 전체경로 지정
- 학교/학년[1]/반[1]/학생/[3]
- 학교 아래에 학년이 있고, 그 아래에 반이 있고, 그 아래에 학생 요소 중 3번째
- 특정 속성을 활용한 버전
- //*[@학번='1-1-3']
- 학번이 '1-1-3'인 요소를 찾기
2. Xpath 실습
네이버 검색 사이트 로그인 Xpath 확인하기
- [ctrl+shift+I] : 관리자 도구 실행
- [select an element in the page to inspect it] 눌러서 로그인 부분을 선택하기
네이버 검색 사이트 로그인 Xpath 확인하기
- /head/body/div/div/div[3]/div/div/div/.../a
네이버 검색 사이트 로그인 Xpath 확인하기
- Copy XPath: id=account인 특정 유니크한 속성을 활용한 코드
- //*[@id="account"]/a
- Copy full XPath: 해당 영역의 전체 경로
- /html/body/div[2]/div[2]/div[3]/div/div[2]/a
전체경로와 특정 class를 활용한 경로 표현을 읽을 줄 알아야함.!
이 글은 나도코딩님의 [파이썬 코딩 무료 강의 (활용편3)]을 보고 공부한 내용입니다.
Xpath 더 많은 지식은 다음의 글을 확인하세요.
반응형'Programing Language > Python' 카테고리의 다른 글
[나도 코딩] 웹 스크래핑 4. Requests (0) 2020.11.03 [나도 코딩] 웹 스크래핑 3. 크롬 (0) 2020.11.03 [Python] Visual studio 환경설정 (0) 2020.10.30 [나도 코딩] 웹 스크래핑 1.HTML (0) 2020.10.29 자료구조와 알고리즘 (0) 2020.08.10