Real Late Starter

인스타그램 크롤링을 통한 분석으로 나만의 아이디어 구상하기 본문

Project/인스타그램 크롤링 프로젝트

인스타그램 크롤링을 통한 분석으로 나만의 아이디어 구상하기

조슈아박 2019. 12. 23. 03:30

1. 프로젝트 개요

이번 포스트는 인스타그램 크롤링을 통해서 내가 원하는 분야를 분석하고

 

분석결과를 토대로 나만의 아이디어를 구상해보는 프로젝트입니다.

 

가장 인기있는 SNS의 데이터를 수집하고 간단한 분석으로 인기있는 것 사람들이 좋아하는 것을 알아보고

 

나만의 특별함을 찾아보는 시간을 가지려고 합니다.

 

수집데이터

- 인스타그램 이미지 데이터

- 인스타그램 태그 텍스트 데이터

 

2. 인스타그램 크롤러 만들기

2-1. 가상환경 만들기

이번 프로젝트는 Pycharm을 이용해서 진행하도록하겠습니다.

우선 프로젝트 파일을 생성하도록하겠습니다. File - New Project... 를 누르고 Create Project 화면에서 가상환경에 대한 설정을 진행합니다. Conda를 통해 가상환경을 만들고 파이썬 버전은 3.6으로 진행하겠습니다.

 

만들어 둔 가상환경에 필요한 패키지들을 설치합니다. ctrl + alt + s 를 누르면 Settings 창이 뜹니다.

Settings 창에 들어가서 + 버튼을 눌러 필요한 라이브러리를 설치해줍니다. 

필요한 라이브러리는 

 

requests, selenium, beautifulsoup4, pandas, matplotlib 입니다.

저같은 경우는 pycharm 내에서 설치하는게 잘 안되서 cmd 창으로 진행을 했습니다.

conda list 명령어를 통해 설치된 패키지들을 확인 할 수 있습니다.

이번에는 크롤링에 필요한 Chrome Webdriver를 다운로드 받아보도록 하겠습니다.

다운로드는 아래 링크에서 가능합니다. 자신의 크롬 버전과 호환되는 드라이버를 다운로드 받아야합니다. 

크롬 버전 확인은 우측상단의 추가 메뉴 버튼 - 도움말 - Chrome 정보 에서 확인이 가능합니다.

https://chromedriver.chromium.org/downloads

 

Downloads - ChromeDriver - WebDriver for Chrome

WebDriver for Chrome

chromedriver.chromium.org

저의 경우에는 79.0.3945.88 버전을 다운로드 받았습니다.

다운로드 받은 chromedriver 파일을 생성한 프로젝트 폴더에 'webdriver'라는 새로운 폴더를 만들고 거기에 복사 붙여넣기를 해줍니다.

 

2-2. 필요 패키지 설정과 Url 받아오기

다음은 생성한 instagram 프로젝트 폴더에서 새로운 파이썬 파일을 만들어줍니다.

# 필요 패키지들 import 하기

from urllib.request import urlopen # 인터넷 url를 열어주는 패키지
from urllib.parse import quote_plus # 한글을 유니코드 형식으로 변환해줌
from bs4 import BeautifulSoup 
from selenium import webdriver # webdriver 가져오기
import time # 크롤링 중 시간 대기를 위한 패키지
import warnings # 경고메시지 제거 패키지
from selenium.webdriver.common.keys import Keys

warnings.filterwarnings(action='ignore') # 경고 메세지 제거

# 인스타 그램 url 생성
baseUrl = "https://www.instagram.com/explore/tags/"
plusUrl = input('검색할 태그를 입력하세요 : ')
url = baseUrl + quote_plus(plusUrl)

driver = webdriver.Chrome(
    executable_path="../webdriver/chromedriver.exe"
)
driver.get(url)

우선 필요한 패키지들을 Import 하고 자신이 원하는 태그의 게시물들을 가지고 올 수 있도록 input 값을 설정합니다.

그 다음 webdriver를 사용하기 위해 경로를 설정해줍니다.

driver.get(url)을 하게되면 새로운 크롬 창이 뜨고 입력했던 태그를 검색한 화면이 나오게됩니다.

 

2-3. 자동 로그인

그런데 새로 나온 창에서 스크롤을 내리다보면 로그인 화면이 나오게 됩니다. 이는 나중에 자동화를 했을 때 방해가 될 수 있기 때문에 이 부분부터 해결하고 진행하도록 하겠습니다.

time.sleep(3)

# 로그인 하기
login_section = '//*[@id="react-root"]/section/nav/div[2]/div/div/div[3]/div/span/a[1]/button'
driver.find_element_by_xpath(login_section).click()
time.sleep(2)


elem_login = driver.find_element_by_name("username")
elem_login.clear()
elem_login.send_keys('인스타그램 계정')

elem_login = driver.find_element_by_name('password')
elem_login.clear()
elem_login.send_keys('비밀번호')

time.sleep(1)

xpath = """//*[@id="react-root"]/section/main/div/article/div/div[1]/div/form/div[4]/button"""
driver.find_element_by_xpath(xpath).click()

time.sleep(4)

자동으로 로그인하는 화면

이번 포스트는 여기까지 작성하도록하겠습니다.

다음 포스트는 이미지와 해쉬태그를 가져오는 법에 대해서 포스팅 하겠습니다.