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

파이썬 인스타그램 좋아요 봇 만들기 #4 좋아요 누르기

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

개요

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

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

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

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

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

목표

 파이썬 자동화 스크립트로 태그 검색한 목록을 선택하여 좋아요를 누르고 다음 게시물로 이동해서 좋아요를 누르자

 

첫번째 게시물 선택하기

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

 제일 처음 뜨는 인기게시물의 첫 게시물을 선택한다.

 

좋아요 누르기

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

 find_element_by_xpath 를 이용하여, 좋아요 버튼의 위치를 찾았다.

 해당 button 은 3개의 list 를 가지며, 0번째는 좋아요 하트 버튼 1번쨰는 댓글 버튼 2번째는 DM 버튼이다.

 Click() 함수를 이용하여 좋아요를 누른다.

 해당 함수는 단순히 Click() 함수이므로, 현재 좋아요가 눌러져있는지 아닌지는 판단하지 않고 Click 만을 수행한다. 따라서 이미 좋아요가 눌러진 게시물의 경우에는 좋아요가 취소 될 수 있다.

 이 점은 다음 포스팅에서 한번 다루는게 좋을거 같다.

 

다음 게시물 이동하기

# 다음 피드로 이동하기
nextFeed = browser.find_element_by_css_selector('body > div._2dDPU.CkGkG > div.EfHg9 > div > div > a._65Bje.coreSpriteRightPaginationArrow')
nextFeed.click()

find_element_by_css_selector 라는 새로운 함수가 나왔다. 역시나 정확한 사용방법은 다음 포스팅에서 연구하여 해보자.

Chrome의 개발자 도구를 이용하여 해당 다음 페이지 버튼의 위치를 찾는것인데, 이부분의 Class 가 암호화가 좀 되어 있어서 특수 문자 CkGKG / EfHg9 등이 나타나는 것으로 파악된다.

 

for 반복문 이용하기

 언어를 배우면 아마 조건문 다음에 반복문을 배울것이다. 잠시 파이썬에서의 For 반복문에 대해서 짚고 넘어가자.

for 변수 in 리스트(또는 튜플, 문자열):
    수행할 문장1
    수행할 문장2
    ...

 파이썬 for 반복문의 특이점은 아래와 같다.

 1) 들여쓰기 :  C 나 Java 에서 사용하는 대괄호 {} 는 볼 수 없고, 들여쓰기를 통해서 For 반복문의 범위를 지정한다.

 2) 반복조건 : in 뒤에는 변수형은 리스트 / 튜플 / 문자열 형식이다.

 3) 종료문구 : for 반복문의 종료는 ":" 를 붙이다.

 

 range 함수와 for 반복문을 이용하여 범위 10 까지 반복하도록 해준다.

 

좋아요 누르기와 다음게시물 이동 10회 반복 CODE

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 = browser.find_element_by_css_selector('body > div._2dDPU.CkGkG > div.EfHg9 > div > div > a._65Bje.coreSpriteRightPaginationArrow')
    nextFeed.click()

 

 

다음 포스팅은 태그 검색 시 인기 게시물이 선택 되는데, 최신 게시물을 선택하도록 해보자.

728x90
반응형

댓글