IT 공부/python
[ Python ] 웹 스크래핑에 필요한 기본 IT지식 (XPath)
JONGI-N CHOI
2022. 1. 18. 16:05
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와 동일한 위치를 가르키고있지만, 훨씬 길이가 길어지고 복잡한 것을 볼 수 있습니다.