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

파이썬 인스타그램 좋아요 봇 만들기 #5 최근 게시물 선택하기

by 큰공 2020. 9. 7.
728x90
반응형

개요

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

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

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

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

2020/08/31 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #3 태그검색

2020/09/02 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #4 좋아요 누르기


목표

 파이썬 자동화 스크립트로 태그 검색시 인기게시물이 먼저 선택되는데, 최근 게시물을 선택하도록 바꾸자.

 파이썬의 함수 사용방법을 익히자

 

인기 게시물

 태그 검색시 Before 부분으로 검색하면, 인기게시물의 첫번째 게시물이 선택 된다.

 인스타그램 태그는 처음 9개 게시물이 인기게시물이고, 다음 10번째 게시물 부터 최근 게시물로 등록이 된다.

 사실 인기게시물의 좋아요를 눌러줘봐짜, 인플루언스의 게시물 뿐이고 좋아요 반사라던지, 팔로워 증가에 큰 도움이 되지 않는다.

 그래서 최근 게시물의 첫 게시물을 선택하고자 아래와 같이 코드를 변경하였다.

#Before
feed = browser.find_element_by_xpath('//*[@id="react-root"]/section/main/article/div[1]/div/div/div[1]/div[1]/a')


#After
feed = browser.find_element_by_xpath('//*[@id="react-root"]/section/main/article/div[1]/div/div/div[3]/div[3]/a')

 아직 정확하게 xpath 의 구조를 정확하게 이해하지 못하는 상황이라, div[3]/div[3] 으로 변경시에, 인기게시물의 마지막 게시물인 9번째 게시물이 선택된는 것을 확인했다. 

 그 게시물에서 다음을 선택하면? 짜잔, 최근 게시물이 선택된다.

 

 즉, div 배열 3*3 을 선택하고, 다음 게시물을 선택해서, 최근 게시물을 뜨게 하는 방법이다.

 

파이썬 함수

 언어를 배우다 보면, 역시 함수를 쓰고 싶은 경우가 생긴다.

 위에서 다음 게시물을 선택할 때, 여러가지 부분에서 호출이 생기는데, 이를 함수로 만들어서 해보도록 하자

 우선, 파이썬 함수의 특징을 살펴 보자.

def 함수명(매개변수):
    <수행할 문장1>
    <수행할 문장2>
    ...

 특이점

 1) def 라는 정의어를 통해서 해당 부분이 함수인것을 나타낸다.

 2) : 으로 끝나며, 해당 함수는 들여쓰기로 포함관계를 정의한다.

 3) 함수를 사용하기 전에 먼저 정의를 해야 한다. (인터프리터의 특징)

 

다음게시물 함수 정의

#다음 게시물 이동하기 함수
def nextFeed():
     time.sleep(1)
     nextFeed = browser.find_element_by_css_selector('body > div._2dDPU.CkGkG > div.EfHg9 > div > div > a._65Bje.coreSpriteRightPaginationArrow')
     nextFeed.click() 

 함수를 이용해서 다음 게시물을 선택하는 함수를 만들어 보았다.

 

함수 호출 부

  최종으로 완성된 함수 호출 부를 사용한, 최근 게시물 선택 후 좋아요 10번 수행하기 코드이다.

# 최근 게시물 중 첫번쨰 게시물 선택하기
time.sleep(3)
feed = browser.find_element_by_xpath('//*[@id="react-root"]/section/main/article/div[1]/div/div/div[3]/div[3]/a')
feed.send_keys(Keys.ENTER)
nextFeed()

for a in range(10):
    # 좋아요 누르기
    time.sleep(3)
    like_list = browser.find_elements_by_xpath('//article//section/span/button')
    like_list[0].click() #list 중 0번째 버튼을 선택

    # 다음 피드로 이동하기
    nextFeed()

 

 

다음에는 랜덤함수를 이용하여, 좋아요를 건너뛰거나, 좋아요를 수행하는 시간을 조절해보기로 한다.

728x90
반응형

댓글