카테고리 없음

크롤링(3)_인스타그램 눌러보기

teminam 2023. 6. 9. 17:49

# 로그인
def login(id, pw):
    input_id = driver.find_element(By.XPATH, '/html/body/div[2]/div/div/div[1]/div/div/div/div[1]/section/main/article/div[2]/div[1]/div[2]/form/div/div[1]/div/label/input')
    input_pw = driver.find_element(By.XPATH, '/html/body/div[2]/div/div/div[1]/div/div/div/div[1]/section/main/article/div[2]/div[1]/div[2]/form/div/div[2]/div/label/input')
    input_id.send_keys(id)
    input_pw.send_keys(pw)
    driver.find_element(By.XPATH, '/html/body/div[2]/div/div/div[1]/div/div/div/div[1]/section/main/article/div[2]/div[1]/div[2]/form/div/div[3]').click()

# 해시태그 검색
def search(hashtag, scroll_times):
    url = f'https://www.instagram.com/explore/tags/{hashtag}/'
    driver.get(url)
    time.sleep(5)
    
    for _ in range(scroll_times): # 스크롤 내리기
    driver.execute_script('window.scrollTo(0, document.body.scrollHeight)') # javascript 명령어를 입력하면 적용이 된다.
    time.sleep(3)
    
# 좋아요 및 댓글달기(어떤사진을 선택할지 index, 댓글, 반복숫자)
def like_and_comment(nth, comment, repeat=1):
    row = (nth-1) // 3+1
    col = (nth-1) % 3 + 1
    xpath = f'/html/body/div[2]/div/div/div[2]/div/div/div/div[1]/div[1]/div[2]/section/main/article/div[2]/div/div[{row}]/div[{col}]/a/div'
    driver.find_element(By.XPATH, xpath).click()
    time.sleep(3) # 화면 띄우고
    
    for i in range(repeat):
        like_xpath = '/html/body/div[2]/div/div/div[3]/div/div/div[1]/div/div[3]/div/div/div/div/div[2]/div/article/div/div[3]/div/div/section[1]/span[1]/button'
        driver.find_element(By.XPATH, like_xpath).click()
        time.sleep(1) # 좋아요 누르고 
    
        comment_xpath = '/html/body/div[2]/div/div/div[3]/div/div/div[1]/div/div[3]/div/div/div/div/div[2]/div/article/div/div[3]/div/div/section[3]/div/form/div/textarea'
        driver.find_element(By.XPATH, comment_xpath).click() # 댓글창에 클릭 먼저 한 번하고 
        driver.find_element(By.XPATH, comment_xpath).send_keys(comment) 
        time.sleep(3)

        send_xpath = '/html/body/div[2]/div/div/div[3]/div/div/div[1]/div/div[3]/div/div/div/div/div[2]/div/article/div/div[3]/div/div/section[3]/div/form/div/div[2]/div'
        driver.find_element(By.XPATH, send_xpath).click()
        time.sleep(3)
    
        if i+1 < repeat:
            next_xpath = '/html/body/div[2]/div/div/div[3]/div/div/div[1]/div/div[3]/div/div/div/div/div[1]/div/div/div[2]/button'
            driver.find_element(By.XPATH, next_xpath).click() 
            time.sleep(3)
driver = webdriver.Chrome()
driver.implicitly_wait(3)

url = 'https://www.instagram.com/'
driver.get(url)

id = '01099028075'
pw = 'sungmin13579:)!!'

login(id, pw)
time.sleep(5)

hastag = '사과'

search(hastag, 3)
time.sleep(5)

like_and_comment(7, '잘 보고 갑니다', 3)