본문 바로가기
데이터분석/크롤링

03. 인스타그램

by 사라리24 2024. 5. 21.
SMALL



1. 로그인

 

 

  • 로그인
 
 
          import chromedriver_autoinstaller
          from selenium import webdriver

          # 크롬 드라이버 자동 설치 및 설정
          driver = webdriver.Chrome()
          driver.get('https://www.instagram.com')

          # 크롬 드라이버 자동 설치 및 설정
          driver = webdriver.Chrome()
          driver.get('https://www.instagram.com')

          # 로그인할 아이디와 비밀번호
          id = '아이디'
          pw = '비밀번호'

          # 아이디 입력 필드 찾기
          input_id = driver.find_element('xpath', '/html/body/div[2]/div/div/div[2]/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('xpath', '/html/body/div[2]/div/div/div[2]/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('xpath', '/html/body/div[2]/div/div/div[2]/div/div/div[1]/section/main/article/div[2]/div[1]/div[2]/form/div/div[3]/button').click()


 
 
  

 

2. 해시태그 검색

 

 

  • 해시태그 검색(로그인 된 상태)
  
            hashtag = '광어'
            url = f'https://www.instagram.com/explore/tags/{hashtag}/'
            driver.get(url)
 
  

 

3. 스크롤 내리기

 

 

  • 스크롤 내리기
 
 

      import time

      #1: 스크롤 몇번 내리기. 즉 1는 한번 내리고, 2는 2번 내리고 n는 n번 내리고
      for _ in range(5):
      # scrollTo(0, document.body.scrollHeigh): 시작 부터 끝까지
          driver.execute_script('window.scrollTo(0, document.body.scrollHeight)')
          #time.sleep(5)
 
 

 

4. 원하는 사진 클릭

 

 

  • 원하는 사진 클릭 하기
  

      hashtag = '피자'
      url = f'https://www.instagram.com/explore/tags/{hashtag}/'
      driver.get(url)

      xpath = '/html/body/div[2]/div/div/div[2]/div/div/div[1]/div[1]/div[2]/section/main/article/div/div[2]/div/div[1]/div[3]/a'
      driver.find_element('xpath', xpath).click()

 

 

5. 좋아요 클릭 및 댓글달기

 

 

  • 좋아요 클릭 및 댓글 달기

  
      like_xpath = '/html/body/div[8]/div[1]/div/div[3]/div/div/div/div/div[2]/div/article/div/div[2]/div/div/div[2]/section[1]/span[1]/div/div'
      driver.find_element('xpath', like_xpath).click()
      driver.find_element('xpath', like_xpath).click()

      reply_xpath = '/html/body/div[8]/div[1]/div/div[3]/div/div/div/div/div[2]/div/article/div/div[2]/div/div/div[2]/section[3]/div/form/div/textarea'
      driver.find_element('xpath', reply_xpath).click()
      driver.find_element('xpath', reply_xpath).send_keys('좋은 정보 감사합니다!')
 
 
  

 

6. 함수 리팩토링

 

 

  • 함수 리팩토링
  
 
 
        # 로그인
        def login(id, pw):
            input_id = driver.find_element('xpath', '/html/body/div[2]/div/div/div[2]/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('xpath', '/html/body/div[2]/div/div/div[2]/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('xpath', '/html/body/div[2]/div/div/div[2]/div/div/div[1]/section/main/article/div[2]/div[1]/div[2]/form/div/div[3]/button').click()

        # 해시태그 검색
        def search(hashtag):
            url = f'https://www.instagram.com/explore/tags/{hashtag}/'
            driver.get(url)

        # 좋아요 및 댓글달기
        def like_and_comment(comment):
            xpath = '/html/body/div[2]/div/div/div[2]/div/div/div[1]/div[1]/div[2]/section/main/article/div/div[2]/div/div[1]/div[3]/a'
            driver.find_element('xpath', xpath).click()

            reply_xpath = '/html/body/div[8]/div[1]/div/div[3]/div/div/div/div/div[2]/div/article/div/div[2]/div/div/div[2]/section[3]/div/form/div/textarea'
            driver.find_element('xpath', reply_xpath).click()
            driver.find_element('xpath', reply_xpath).send_keys('좋은 정보 감사합니다!')
 
 
  

 

  
        # 실행
        driver = webdriver.Chrome()
        url = 'https://www.instagram.com'
        driver.get(url)
        driver.implicitly_wait)(3)

        id = '아이디'
        pw = '비밀번호'

        hashtag = '사과'
        login(id, pw)
        time.sleep(4)

        like_and_comment('안녕하세요! 잘 보고 갑니다")
 
  

 

'데이터분석 > 크롤링' 카테고리의 다른 글

04. 이미지 수집  (0) 2024.05.21
02. Selenium, Xpath (네이버웹툰 크롤링)  (0) 2024.05.21
01. 크롤링(Crawling)  (0) 2024.05.20