ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python Selenium을 이용한 인스타그램 자동 내리기
    How to Dev 2021. 12. 17. 12:47

    Python으로 웹 크롤링을 하기 위한 도구 중 selenium을 사용하여 간단한 자동내리기를 구현하겠습니다.

    설치 준비 사항

    pip install selenium

    크롬 버전 확인

    chrome://version/

    크롬 버전 확인

    크롬 버전에 맞는 크롬 드라이버 찾기

    # 95버전 이하 
    https://sites.google.com/a/chromium.org/chromedriver/downloads 
    # 96버전 이상 
    https://sites.google.com/chromium.org/driver/

    OS 버전에 맞게 드라이버 다운로드

    드라이버 다운로드

    다운로드 된 드라이버를 파이썬 실행 파일 위치로 이동

    실행 파일 위치로 이동

    주피터 노트북 또는 파이썬 실행

    # 임포트 
    from selenium import webdriver 
    from time import sleep 
    
    # 드라이버 연결 
    browser = webdriver.Chrome('./chromedriver') 
    browser.implicitly_wait(1) 
    browser.get('https://www.instagram.com/') 
    sleep(3) 
    
    # 인스타그램 로그인 
    username_input = browser.find_element_by_css_selector("input[name='username']") 
    password_input = browser.find_element_by_css_selector("input[name='password']") 
    username_input.send_keys("인스타그램 ID") 
    password_input.send_keys("인스타그램 패스워드") 
    login_button = browser.find_element_by_xpath("//button[@type='submit']") 
    login_button.click() 
    
    # 브라우저 오픈 및 스크롤 다운로드 
    SCROLL_PAUASE_TIME = 1.5 
    
    # 예제 browser.get('https://www.instagram.com/drawandrew/?hl=ko') 
    browser.get('자동스크롤 하고 싶은 인스타 주소') 
    while True:
        sleep(SCROLL_PAUASE_TIME)
        #스크롤을 내려준다
        last_height = browser.execute_script("return document.body.scrollHeight")
        browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
        sleep(SCROLL_PAUASE_TIME)
        new_height = browser.execute_script("return document.body.scrollHeight")
        if new_height == last_height:
            browser.execute_script(
                "window.scrollTo(0, document.body.scrollHeight);")
            sleep(SCROLL_PAUASE_TIME)
            new_height = browser.execute_script(
                "return document.body.scrollHeight")
            if new_height == last_height:
                break
            else:
                last_height = new_height
                continue

    'How to Dev' 카테고리의 다른 글

    2021 Full-stack 개발자  (0) 2021.12.14
    RESTful API를 이용하여 PostgreSQL 연계  (0) 2021.12.14
    Istio란?  (0) 2021.12.10
    Visual Studio Code Javascript 라이브 로깅  (0) 2021.12.07
    git pull error(강제 덮어쓰기)  (0) 2021.09.16
Designed by Tistory.