Real Late Starter
인스타그램 크롤링을 통한 분석으로 나만의 아이디어 구상하기 본문
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 창으로 진행을 했습니다.
이번에는 크롤링에 필요한 Chrome Webdriver를 다운로드 받아보도록 하겠습니다.
다운로드는 아래 링크에서 가능합니다. 자신의 크롬 버전과 호환되는 드라이버를 다운로드 받아야합니다.
크롬 버전 확인은 우측상단의 추가 메뉴 버튼 - 도움말 - Chrome 정보 에서 확인이 가능합니다.
https://chromedriver.chromium.org/downloads
저의 경우에는 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)
이번 포스트는 여기까지 작성하도록하겠습니다.
다음 포스트는 이미지와 해쉬태그를 가져오는 법에 대해서 포스팅 하겠습니다.
'Project > 인스타그램 크롤링 프로젝트' 카테고리의 다른 글
인스타그램 크롤링을 통한 분석으로 나만의 아이디어 구상하기 (1 : 태그 크롤링) (24) | 2020.03.18 |
---|