ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [나도 코딩]웹 스크래핑 2. Xpath
    Programing Language/Python 2020. 11. 2. 16:25
    반응형

    웹 스크래핑

    Xpath


     

    이 글은 나도코딩님의 [파이썬 코딩 무료 강의 (활용편3)]을 보고 공부한 내용입니다. 

    웹 스크래핑 1.HTML 편 공부하고 오기

     

    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 더 많은 지식은 다음의 글을 확인하세요.

    반응형

    댓글

Designed by Tistory.