반응형
준비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'
패키지 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
현재 보시는 코드에는 버그가 있으니 아래의 링크를 참고해주세요^^
반응형
'인스타그램 자동화' 카테고리의 다른 글
[파이썬(Python)] 인스타그램 자동 프로그램 만들기 - 자동 댓글 (2) (1) | 2021.02.27 |
---|---|
[파이썬(Python)] 인스타그램 자동 프로그램 만들기 - 자동 댓글 (1) (2) | 2021.02.27 |
인스타그램 자동 좋아요 프로그램 만들기 - 파이썬(python), 셀레니움(selenium) - 기능 강화 및 예외 처리 (5) | 2021.02.02 |
인스타그램 자동 좋아요 프로그램 만들기 - 파이썬(python), 셀레니움(selenium) - 로그인, 원하는 횟수만큼 좋아요 작업 (8) | 2021.02.02 |
[Python] 인스타그램 자동 댓글 예제 (2) | 2020.06.28 |
댓글