인스타그램 자동화

[Python] 인스타그램 자동 좋아요 예제

dev109 2020. 6. 27.
반응형

준비1. chrome browser 설치

https://www.google.com/intl/ko/chrome/

 

준비2. chromedriver 

https://chromedriver.chromium.org/downloads

  • 설치된 크롬브라우저에 맞는 버전을 사용해야 에러가 나지 않습니다.
  • 다운로드 받은 후에 구현할 파이썬 파일과 같은 경로에 복사해 놓으세요.

 

준비3. 패키지 설치

mac pip3 install selenium
window pip install selenium

 

 

준비4. 인스타그램 아이디&패스워드 저장해놓을 파일 만들기 > myid.py

ID='id'
PW='pwd'

 

준비 완료 > auto-like.py, myid.py, chromedriver


패키지 Import & 드라이버 가져오기 > auto-like.py

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from myid import ID, PW
import time

driver = webdriver.Chrome('./chromedriver')

 

인스타그램 접속 & 로그인 & 팝업창 닫기

driver.get('https://instagram.com')

time.sleep(2) #페이지 로딩이 느려지면 다음에 실행 될 동작들이 실행이 될 수 없어 에러가 나기때문에 시간이 지체되는 부분에 대기 시간을 넣어줍니다.

#login
login_id = driver.find_element_by_name('username')
login_id.send_keys(ID)
login_pw = driver.find_element_by_name('password')
login_pw.send_keys(PW)
login_pw.send_keys(Keys.RETURN

time.sleep(5)

#pass popup - 로그인 후 피드 페이지에서 팝업창이 따로 나오지 않을경우 아래 부분은 주석하고 바로 해시태그 검색
popup = driver.find_element_by_xpath('//*[@id="react-root"]/section/main/div/div/div/div/button')
popup.send_keys(Keys.ENTER)
time.sleep(3)
popup = driver.find_element_by_xpath('/html/body/div[4]/div/div/div/div[3]/button[2]')
popup.send_keys(Keys.ENTER)

 

해시태그 검색

time.sleep(2)

#searh
search = driver.find_element_by_xpath('//*[@id="react-root"]/section/nav/div[2]/div/div/div[2]/input')
search.send_keys('#개스타그램')
time.sleep(5)
search = driver.find_element_by_xpath('//*[@id="react-root"]/section/nav/div[2]/div/div/div[2]/div[2]/div[2]/div/a[1]')
feedCtn = driver.find_element_by_xpath('//*[@id="react-root"]/section/nav/div[2]/div/div/div[2]/div[2]/div[2]/div/a[1]/div/div/div[2]/span/span').text
print('검색된 피드 수 : {}'.format(feedCtn))
search.send_keys(Keys.ENTER)

time.sleep(3)

 

첫번째 피드를 선택하고 좋아요를 누른 뒤 다음 피드로 넘겨서 좋아요 반복

#select first feed
feed = driver.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)

feedCtn = 10 #전체 피드 수 만큼 반복하시려면 feedCtn을 따로 지정하지 않고, 검색부분에서 가져온 feedCtn을 그대로 사용합니다.
while True:
  # like
  like = driver.find_element_by_xpath('/html/body/div[4]/div[2]/div/article/div[2]/section[1]/span[1]/button')
  likeBtnTxt = driver.find_element_by_css_selector(
  'body > div._2dDPU.CkGkG > div.zZYga > div > article > div.eo2As > section.ltpMr.Slqrh > span.fr66n > button > svg')
  likeBtnTxt = likeBtnTxt.get_attribute('aria-label')

  if likeBtnTxt != '좋아요':
  	print('이미 좋아요를 누른 게시물입니다.')
  else:
  	like.send_keys(Keys.ENTER)
  	feedCtn -= 1

  time.sleep(1)

  #다음 피드
  nextFeed = driver.find_element_by_css_selector('body > div._2dDPU.CkGkG > div.EfHg9 > div > div > a._65Bje.coreSpriteRightPaginationArrow')
  ac = ActionChains(driver)
  ac.move_to_element(nextFeed)
  ac.click()
  ac.perform()

  if feedCtn == 1:
  	break
    
  time.sleep(1)

 

 

전체 코드에서는 try/except문을 사용해서 감싸주었습니다.

Github에서 확인하세요.

https://github.com/109dev/python-instagram-auto

 

 


 

현재 보시는 코드에는 버그가 있으니 아래의 링크를 참고해주세요^^

private.tistory.com/92

 

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

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

private.tistory.com

 

반응형

댓글

💲 추천 글