XPath
XPath란, 웹 스크래핑을 하기위해서 특정 태그의 값을 가져오고 싶으면, 그 태그의 위치를 알아야하는데 그 위치를 의미하는 것이 XPath다.
비슷한 태그, 엘리먼트가 있을 경우를 대비해서, 정확한 위치를 입력하기 위함
/html/body/div/span/a....
하지만, 이렇게 하나하나 나열하게 되면, 복잡하다.
속성값이 유니크한 값이 있을 경우에는 줄여서 사용하는 것이 가능하다.
//*[@id="user_name"]
모든 문서에서 id 속성값이 user_name인 것을 찾아라라는 의미
'/' 는 현재 엘리먼트 위치를 의미하고,
'//' 는 상위 엘리먼트 위치를 의미합니다.
'*' 는 모든 태그 상관없이
'@' 속성을 의미
XPath 쉽게 가져오는 법
네이버의 검색창부분의 XPath를 가져오고 싶은 경우
브라우저 검사창을 킨다음에, 해당 엘리먼트에서 우클릭 -> 복사 -> XPath 복사
//*[@id="sform"]/fieldset/div
그럼 위와 같은 XPath가 나온다.
즉, 모든 문서위치에서 속성 id 값이 sform인 곳에서 하위 fieldset 태그의 하위 div태그 위치를 가르키고있다.
/html/body/div[2]/div[2]/div[1]/div/div[3]/form/fieldset/div
전체 XPath를 복사하면, 위와같은 XPath도 가져올 수 있습니다.
위의 XPath와 동일한 위치를 가르키고있지만, 훨씬 길이가 길어지고 복잡한 것을 볼 수 있습니다.
'IT 공부 > python' 카테고리의 다른 글
[ Python ] re 라이브러리를 이용해 '정규식' 사용하기 (0) | 2022.01.21 |
---|---|
[ Python ] requests를 이용해 웹 크롤링한 뒤에 파일로 저장하기 (0) | 2022.01.18 |
[ python ] django로 웹만들기 (0) | 2021.01.01 |
[ python ] 자동 이메일 프로젝트 (0) | 2020.12.26 |
[ python ] email 자동화 (0) | 2020.12.26 |