본문 바로가기
프로젝트/인스타그램 좋아요 봇

파이썬 인스타그램 좋아요 봇 만들기 #3 태그검색

by 큰공 2020. 8. 31.
728x90
반응형

 

개요

 파이썬 자동화 프로그램을 만들어 자동으로 좋아요를 하는 봇을 만들어 보자

 혹시나 앞선 포스팅을 못 봤다면 복습하고 오자.

2020/08/26 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #1 Selenium

2020/08/27 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #2 로그인

 

목표

 파이썬 자동화 스크립트로 인스타그램 페이지를 띄우고 태그 검색까지 해보자

 

난관

 로그인을 했는데 두둥 처음 보는 화면은 로그인 기록 자동 저장 팝업? / 팝업을 누르고나니 알림 팝업이 두둥..

 매번 로그인하는것도 귀찮은데, 팝업까지 매번 닫아야 한다?? ㅠ_ㅠ

 

 

팝업 닫기 CODE

# 정보 저장 팝업 닫기
popup = browser.find_element_by_xpath('//*[@id="react-root"]/section/main/div/div/div/div/button')
popup.send_keys(Keys.ENTER)

time.sleep(2)

# 알림 설정 팝업 닫기
popup = browser.find_element_by_xpath('/html/body/div[4]/div/div/div/div[3]/button[2]')
popup.send_keys(Keys.ENTER)

 find_elemnet_by_xpath 라는 함수를 이용하여, not now 버튼의 위치를 찾고, 해당 위치에서 enter 를 눌러서 해당 팝업을 닫는 시나리오이다.

 xpath 는 개발자 도구에서 찾는 방법인데, 다음번에 상세하게 해당 위치를 찾는 방법을 강구해 보자

 

태그 검색 CODE

# 태그 검색 하기
search = browser.find_element_by_xpath('//*[@id="react-root"]/section/nav/div[2]/div/div/div[2]/input')
search.send_keys('#맛스타그램')

#time.sleep(2)

# 최상위 검색 결과로 진입하기 Enter 두번으로 수행 
search.send_keys(Keys.RETURN) #최상위 검색결과로 Focus 이동
search.send_keys(Keys.RETURN) #검색결과 새로운 창으로 이동

 

 태그명은 "맛스타그램" 으로 정하였다. 역시나 태그 검색 부분의 위치를 찾고, 해당 위치에 "#맛스타그램" 의 문자열을 보내준다음. 엔터를 두번 쳐서 태그 검색 화면으로 이동한다.

 엔터를 두번치는 이유는 한번은 태그 검색 목록에서의 최상단으로 이동하고, 한번은 새로운 창으로 이동하는 것이다.

 

 

다음엔 진짜 좋아요를 눌러보자!

 

팝업 닫기 XPATH 가 계속 변경되요.

 인스타그램 자동 좋아요 등에 대해서 어뷰징 처리가 되어서 있어서 그런지, 해당 부분이 좀 시시각각으로 바뀌는 부분이 확인되었습니다.

 이에 해당 부분에 대한 예외 처리 코드를 공유드립니다.

 

 XPATH 를 확인하기 위해서는 excpetion 이 발생하면 해당 부분에 대해서 일일히 찾아서 예외 처리 했었는데, 좀 더 효율적인 로직으로 할려면 좀 더 고민을 해봐야 할거 같습니다.

 

# 알림 설정 팝업 닫기
time.sleep(10)
try :
    popup = browser.find_element_by_xpath('/html/body/div[4]/div/div/div/div[3]/button[2]')
except :
    try : 
        popup = browser.find_element_by_xpath('html/body/div[3]/div/div/div/div[3]/button[2]')
    except : 
        try :
            popup = browser.find_element_by_xpath('/html/body/div[5]/div/div/div/div[3]/button[2]')
        except : 
            try :
                popup = browser.find_element_by_xpath('/html/body/div[6]/div/div/div/div[3]/button[2]')
            except : 
                try :
                    popup = browser.find_element_by_xpath('/html/body/div[7]/div/div/div/div[3]/button[2]')
                except :
                    popup = browser.find_element_by_xpath('/html/body/div[8]/div/div/div/div[3]/button[2]')
popup.send_keys(Keys.ENTER)

 

 

728x90
반응형

댓글