반응형
VSCODE에서 아래 내용 실행하시면, 터미널에서 아이디, 비밀번호, 태그, 좋아요 횟수 입력 후 자동으로 수행하게 됩니다.
Instagram 내 코드가 자주 수정되므로.. 언제까지 될지 모르겠네요..(확인 : 2024.08.20)
참고한 블로그는 아래와 같습니다.
##instagram
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains
import time
import random
import os
# 대기 시간 random
wait_time = random.uniform(5, 30)
# 필요한 변수 정의
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')
driver_path = os.path.join(os.getcwd(), "chromedriver.exe")
service = Service(driver_path)
driver = webdriver.Chrome(service=service, options=options)
driver.implicitly_wait(10)
driver.get('https://www.instagram.com/?hl=ko')
print('로그인중....')
time.sleep(wait_time)
# 아이디 입력창을 찾아서 위에서 입력받은 아이디(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) # 아이디 입력
# 패스워드 입력창을 찾아서 위에서 입력받은 패스워드(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)
# 로그인 버튼 클릭
login_btn = driver.find_element(By.XPATH, '//*[@id="loginForm"]/div/div[3]/button')
login_btn.click()
# 잠시 대기
time.sleep(wait_time)
# 4. 작업할 해시태그 검색 결과 페이지로 이동
driver.get(f'https://www.instagram.com/explore/tags/{insta_tag}/')
time.sleep(wait_time)
first_feed = driver.find_element(By.XPATH, "//article//a[contains(@href, '/p/')]")
first_feed.click()
for idx in range(insta_cnt) :
like_btn = driver.find_element(By.CSS_SELECTOR, 'svg[aria-label="좋아요"]')
actions = ActionChains(driver)
actions.move_to_element(like_btn).click().perform()
time.sleep(wait_time)
next_btn = driver.find_element(By.CSS_SELECTOR, 'svg[aria-label="다음"]')
next_btn.click()
time.sleep(wait_time)
print(f"작업 완료 : {idx + 1} 회")
반응형
'Command & Development > Python' 카테고리의 다른 글
[Python] 가위바위보 게임 (0) | 2024.01.08 |
---|---|
[Python] Lotto 번호 생성 (0) | 2023.03.29 |
Python - 4 (0) | 2022.05.12 |
Python - 3 (0) | 2022.05.11 |
Python - 2 (0) | 2022.05.10 |