개요
파이썬 자동화 프로그램을 만들어 자동으로 좋아요를 하는 봇을 만들어 보자
혹시나 앞선 포스팅을 못 봤다면 복습하고 오자.
2020/08/26 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #1 Selenium
2020/08/27 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #2 로그인
2020/08/31 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #3 태그검색
2020/09/02 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #4 좋아요 누르기
2020/09/07 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #5 최근 게시물 선택하기
2020/09/08 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #6 랜덤함수
2020/09/14 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #7 list index out of range
2020/09/17 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #8 페이지 새로고침
XPATH 란?
이때까지 많은 함수들을 사용해왔지만, 유독 find_element_by_xpath 함수에 대해서는 생각보다 깊이 있게 파고들지 않았다. 검색을 통해서 나온 값들을 사용하게 되니, 해당값이 정확하게 어떤것을 의미하는지 몰라 자유자재로 바꾸기도 어려웠다. 이에, 이번 포스팅을 통해서 xpath 값을 크롬 developer tool 을 이용하여 정확하게 알아보고자 한다.
정의된 문구는 아래와 같다. 뭐 정확하게 뭔말인지 몰라도 된다. xml 문서의 경로를 나타낸다! 정도로만 이해하자
W3C의 표준으로 XML(Extensible Markup Language)문서의 구조를 통해 경로(Path)위에 지정한 구문을 사용하여 항목을 배치하고 처리하는 방법을 기술하는 언어입니다. XML 표현보다 더 쉽고 약어로 되어 있으며, XSL변환(XSLT)과 XML지시자 언어(XPointer)에 쓰이는 언어로 XML 문서의 Node를 정의하기 위하여 경로식(Path Expression)을 사용하며, 수학 함수와 기타 확장 가능한 표현들이 있습니다.
find_element_by_xpath
크롤링에 있어서, xpath 로 해당 위치를 찾는것은 매우 중요하다. xpath의 문법을 살펴보자.
그중 필요한 문법만 가져와 보자
문법 | 설명 |
/ | 절대 경로를 나타낸다. |
// | 문서 내에서 검색하고자 할때 사용한다. |
* | 알려지지 않은 모든 앨러멘트를 선택하기 위해서 사용한다. |
@ | 모든 속성을 의미한다. |
[] | 대괄호를 사용하여 선택하고자 하는 앨러멘트를 보다 세부적으로 설정한다. |
Development Tool - Select Element
그럼 xpath를 어떻게 찾는지 차근차근 따라 가보자. 인스타그램에서 최근 게시물의 첫번째 게시물을 찾는 방법이다.
해당 부분은 mac os / chrome 환경이다.
1) 원하는 페이지 실행
2) 세팅 -> More Tools -> Developer Tools 를 선택
3) 좌측에 빨간 동그라미를 선택한다.
4) 원하는 위치에 클릭을 하면 이런식으로 해당 부분의 위치를 툴에서 표시를 해준다.
5) 찾는 경로를 흰색으로 표시해 두었다.
6) 문서 전체에서 react-root를 찾고, 하위 경로로 하나씩 내려간다.
section -> article -> div[2] (여기서 같은 레벨의 2번째이므로 해당부분을 조심한다) -> div -> div -> div -> a
우리가 원하는 것은 <a> 태그로 묶인 하이퍼링크이므로 이를 선택한다.
완성된 xpath 찾기 코드
feed = browser.find_element_by_xpath('//*[@id="react-root"]/section/main/article/div[2]/div/div/div/a')
'프로젝트 > 인스타그램 좋아요 봇' 카테고리의 다른 글
파이썬 인스타그램 좋아요 봇 만들기 #11 태그 검색 변경하기 (3) | 2020.10.21 |
---|---|
파이썬 인스타그램 좋아요 봇 만들기 #10 이미 좋아요 누른 게시물 패스하기 (11) | 2020.10.08 |
파이썬 인스타그램 좋아요 봇 만들기 #8 페이지 새로고침 (1) | 2020.09.17 |
파이썬 인스타그램 좋아요 봇 만들기 #7 list index out of range (0) | 2020.09.14 |
파이썬 인스타그램 좋아요 봇 만들기 #6 랜덤함수 (0) | 2020.09.08 |
댓글