프로젝트 및 실습/Selenium

[Selenium] 인스타그램 해쉬태그 크롤링 (1) - 인스타그램 자동 로그인

jooona 2021. 8. 10. 22:59
반응형

오늘은 Selenium을 이용한 인스타그램 해쉬태그 크롤링을 실행해보도록 하겠습니다. 이번 글에서는 인스타그램 자동 로그인을 하는 방법에 대해서 우선 알아보겠습니다.

 

1
2
3
from selenium import webdriver 
import time
import pandas as pd
cs

 

우선 import 할 거 import 해주고,

 

1
2
driver = webdriver.Chrome("C:/chromedriver.exe")
driver.get("https://www.instagram.com/accounts/login/" )
cs

 

Chrome Driver를 연결해줍니다. Chrome Driver는 아래의 링크에서 다운받을 수 있고, 자신이 다운받은 경로로 따옴표 안을 고쳐줍니다. 

 

https://chromedriver.chromium.org/downloads

 

ChromeDriver - WebDriver for Chrome - Downloads

Current Releases If you are using Chrome version 93, please download ChromeDriver 93.0.4577.15 If you are using Chrome version 92, please download ChromeDriver 92.0.4515.107 If you are using Chrome version 91, please download ChromeDriver 91.0.4472.101 For

chromedriver.chromium.org

 

두번 째 줄은 instagram의 로그인 창을 열어주는 코드입니다. 

저기까지 실행하면 chrome 창에 자동으로 인스타그램 로그인 페이지가 뜨게 됩니다. 참고로 chrome driver 버전 오류가 있을 수 있습니다. 오류 창을 잘 읽어보면 몇 이하로 또는 몇 이상으로 버전을 바꾸라는 말이 있으니, 버전을 맞춰주면 됩니다. 

 

다음과 같이 로그인 페이지가 뜨는 것을 확인하고 다음으로 넘어가면 됩니다.

 

 

1
2
3
4
5
6
7
_id = driver.find_element_by_name('username')
_id.send_keys(instagram_id)
time.sleep(2)
 
_password = driver.find_element_by_name('password')
_password.send_keys(instagram_pw)
time.sleep(2)
cs

 

이제 아이디와 비밀번호를 입력해야겠죠? 위의 코드에서 instagram_id에 자신의 아이디를, instagram_pw에 자신의 비밀번호를 입력해주고 실행합니다. 

 

코드를 한 번 살펴보자면 find_element_by_name은 name 속성으로 layout의 위치를 가져오는 함수라고 할 수 있습니다. 웹 사이트에서 F12를 눌러 개발자 모드를 열고, 좌측 상단의 마우스 모양을 누르면 화면의 각 layout의 속성을 살펴볼 수 있습니다. 아이디를 입력하는 창을 눌러보면 name이 "username"으로 되어있는 것을 확인할 수 있죠? 

 

따라서 driver.find_element_by_name('username' 라는 코드는 'username'이라는 이름을 가진 layout을 가져온다는 뜻으로 해석할 수 있습니다.

 

그러면 다음과 같이 자신의 아이디와 비밀번호가 잘 입력된 것을 볼 수 있습니다. 

 

 

1
2
3
4
5
6
7
8
login_button = driver.find_element_by_css_selector('.sqdOP.L3NKy.y3zKF').click()
time.sleep(5# 로그인 버튼 누르기
 
driver.find_element_by_css_selector('.sqdOP.yWX7d.y3zKF').click()
time.sleep(3# 로그인 저장 나중에
 
driver.find_element_by_css_selector('.aOOlW.HoLwm').click()
time.sleep(3# 설정 나중에
cs

 

위의 코드를 실행하면 로그인이 완료됩니다.

 

참고로 driver.find_element_by_css_selector 는 위에서 'username'을 가져올 때와 같이 class 명으로 layout을 가져오는 코드입니다. 역시 개발자 모드를 열어서 원하는 layout을 클릭해보면 class 명이 나오는 것을 확인할 수 있습니다.

 

 

다음 글에서는 본격적으로 인스타그램 해쉬태그 크롤링을 하는 방법을 알아보겠습니다.

반응형