IT Studio/개발

[파이썬] 인스타그램 좋아요 봇 따라해보기

유영훈 2021. 7. 16. 17:19

아래 출처에서 인스타그램 좋아요 봇 파이썬 코딩을 보고 따라해보았다

 

주의해야할 점은

 - 인스타그램 2차 비밀번호 인증 해제

 - 페이스북으로 로그인 하였다면, 인스타그램 비밀번호도 설정

 - 이상하게 1번 로그인 시도후에 또 로그인창이 떠있어서 재빠르게 수동으로 로그인정보 봇붙으로 진행하였다.

   이부분은 내가 수정해볼수있도록 여러번 테스트해볼것이다.

 

결과 : 실제로 로봇처럼 되었다. 

 

테스트 : 나는 인스타를 운동계정으로 활용하고 있어서 '운동하는직장인'으로 해시태그를 찾아서 좋아요를 누를 것이다

 - 간격: 23초 으로 진행

 - 진행시간 : 13시간= 780분 => 분당 2.6번

 - 예상 좋아요 기록 : 2034.783번 

 - 테스트 좋아요 건수 : 2035번

 => 숫자체크를 실제로 다 하지는 못하겠지만, 내가 올린 피드에 좋아요 숫자를 누르는 것 관전포인트

  (현재 좋아요 29개 - 오늘게시글)

 

* 좋아요 기록 보기 : https://blog.hangyeong.com/1342

 

인스타그램 좋아요 기록 확인 방법

모든 쇼셜미디어의 호감도 표시는 좋아요로 대변된다. 페이스북의 손가락 좋아요를 시작으로 인스타그램의 하트 좋아요, 유튜브 역시 좋아요를 통해 호감도를 표시한다. 블로그도 마찬가지다.

blog.hangyeong.com

 

파이썬 코딩 출처 : https://private.tistory.com/92

 

인스타그램 자동 좋아요 프로그램 만들기 - 파이썬(python), 셀레니움(selenium) - 로그인, 원하는 횟

구현 기능 - 인스타그램 로그인, 설정한 횟수만큼 자동 좋아요 작업 작업환경 - 윈도우10, VS Code, Python3 오늘 구현해 볼 기능은 아주 간단한 인스타그램 로그인과 설정한 횟수만큼 자동으로 좋아

private.tistory.com

 

# -*- coding: utf-8 -*-
from selenium import webdriver
import inspect, os, platform, time

def bot():
    #필요한 변수 정의
    insta_id = input('인스타그램 아이디 : ')
    insta_pw = input('인스타그램 패스워드 : ')
    insta_tag = input('작업할 해시태그 : ')
    insta_cnt = int(input('작업횟수(숫자만) : '))

    #크롬드라이버 로딩
    options = webdriver.ChromeOptions()
    options.add_argument('--disable-gpu')
    options.add_argument('user-agent=Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36')

    current_folder = os.path.realpath( os.path.abspath(os.path.split(inspect.getfile(inspect.currentframe()))[0]))

    if platform.system() == 'Windows':
        driver_path = os.path.join(current_folder, 'chromedriver.exe')
    else:
        driver_path = os.path.join(current_folder, 'chromedriver')

    driver = webdriver.Chrome(driver_path, options=options)
    driver.implicitly_wait(10)

    ### 인스타그램 자동 좋아요 작업 ###
    #
    # 1. 인스타그램 로그인 페이지로 이동
    driver.get('https://www.instagram.com/?hl=ko')
    print('로그인중....')
    time.sleep(3)

    # 2. 아이디 입력창을 찾아서 위에서 입력받은 아이디(insta_id)값 입력
    id_input = driver.find_element_by_xpath('//*[@id="loginForm"]/div/div[1]/div/label')
    id_input.click() #입력창 클릭
    id_input.send_keys(insta_id)

    # 아이디 입력 # 2-1. 패스워드 입력창을 찾아서 위에서 입력받은 패스워드(insta_pw)값 입력
    pw_input = driver.find_element_by_xpath('//*[@id="loginForm"]/div/div[2]/div/label')
    pw_input.click()
    pw_input.send_keys(insta_pw)

    # 3. 로그인 버튼 클릭
    login_btn = driver.find_element_by_xpath('//*[@id="loginForm"]/div/div[3]/button')
    login_btn.click() # 잠시 대기 time.sleep(3)

    # 4. 작업할 해시태그 검색 결과 페이지로 이동
    driver.get('https://www.instagram.com/explore/tags/{}/'.format(insta_tag))
    time.sleep(2)

    # 5. 인기게시물 첫번째 피드 선택
    first_feed = driver.find_element_by_xpath('//*[@id="react-root"]/section/main/article/div[1]/div/div/div[1]/div[1]/a/div/div[2]')
    first_feed.click()
    time.sleep(1)

    # 6. 좋아요 작업 - 입력한 횟수만큼 반복 작업
    for idx in range(insta_cnt):
        div = driver.find_element_by_xpath('/html/body/div[5]/div[2]/div/article/div')
        div = div.find_element_by_xpath('/html/body/div[5]/div[2]/div/article/div[3]')
        like_btn = div.find_element_by_tag_name('button') #좋아요 버튼

        like_btn.click() #좋아요 클릭
        print('{}번째 피드 좋아요 작업 완료'.format(idx + 1))

        # 너무 빠르게 작업을 할 경우 많은 양의 작업을 하게 되어 인스타그램측에서 계정 정지나 경고를 할 수 있으니
        # 작업과 다음 작업 사이의 속도를 조절하기 위해 20초 이상을 설정해주세요.
        time.sleep(23)

        # 7. 좋아요 작업 - 다음 피드로 이동
        if idx < insta_cnt:
            next_feed = driver.find_element_by_link_text('다음')
            next_feed.click()

    print('모든 작업 완료')
    driver.quit()


bot()