코딩코딩코딩

인스타그램 해시태그 크롤링 및 분석 - 1 본문

파이썬/텍스트마이닝

인스타그램 해시태그 크롤링 및 분석 - 1

hanshow113 2020. 7. 21. 18:39

1. Selenium 기반 웹 크롤링 기법

2. 해시태그, 좋아요 등의 정보 크롤링 

3. 인스타그램 해시태그와 좋아요 수를 크롤링한 후 각자 개수를 비교해서 어떤 영향을 미치는지 확인할 것

   - 키워드 네트워크 분석기법 활용

 

 

 

# Selenium Basic command

1. driver.get('url') : 페이지 접속
2. elem = driver.find_element_by_name('q') : 커서를 검색어 입력 부분에 위치시킴
    - find_by_class_name or find_by_xpath 등도 가능
    (xpath는 html 검사 시 우클릭>xpath copy로 복사 가능
3. elem.clear() : 검색어 부분 입력내용 삭제
4. elem.send_keys('내용') : 내용 입력
5. elem.submit() : 입력한 내용 검색 실행
    - click() : 클릭
6. driver.close() : 페이지 닫음
7. aseert 'keyword' in driver.title or driver.page_source
    : 제목이나 내용에 keyword가 있는지 파악 - 없으면 assertion error 반환
    
    
    
    Import Library
    
import pandas as pd
import numpy as np

import selenium
from selenium import webdriver

from bs4 import BeautifulSoup as bs
from urllib.request import urlopen, Request
from urllib.parse import quote_plus

import time
from tqdm import tqdm_notebook
import warnings
warnings.filterwarnings('ignore')

라이브러리를 불러온 후 selenium을 통해 자동으로 로그인하는 함수와 검색함수 생성

 

* selenium을 사용하려면 먼저 chromedriver.exe를 설치하셔야 합니다.

https://sacko.tistory.com/13

 

문과생도 할 수 있는 웹 크롤링 (2) - Selenium 사용 준비

자! 데이터 크롤링 방법을 논하기에 먼저 필요한 도구들을 하나씩 정리하려고 한다. Selenium, Scrapy, Json, Database.... 등등 포스팅을 하면서 정말 필요한 것들만 정리해보도록 하겠다. 2017/09/29 - [Data S

sacko.tistory.com

def instagram_login(id, pw):
    driver.get(url)
    driver.implicitly_wait(5)
    driver.find_element_by_name('username').send_keys(id)    # id 입력
    elem_pw = driver.find_element_by_name('password')    # pw 입력
    elem_pw.send_keys(pw)
    elem_pw.submit()
    
    driver.implicitly_wait(5)    # 파싱될 때까지 5초 기다림 (미리 완료되면 waiting 종료됨)
    driver.find_element_by_class_name('cmbtv').click()    # 비밀번호 저장하지 않음
    
    driver.implicitly_wait(5)
    driver.find_element_by_xpath('/html/body/div[4]/div/div/div/div[3]/button[2]').click()    # 알림설정 무시
    
    
def main_search(keyword):
    search = driver.find_element_by_xpath('//*[@id="react-root"]/section/nav/div[2]/div/div/div[2]/input')
    search.clear()
    search.send_keys(keyword)
    search_list1 = driver.find_element_by_xpath('//*[@id="react-root"]/section/nav/div[2]/div/div/div[2]/div[3]/div[2]/div/a[1]')
    search_list1.click()
    
    
    #접속주소 설정
url = 'http://www.instagram.com'
path = 'C:\\Users\\User\\Downloads\\chromedriver_win32\\chromedriver.exe'
driver = webdriver.Chrome(path)

위 함수를 이용해서 ID, PW를 입력한 후 main_search 함수를 동작하면 검색 리스트 첫 번째 검색어로 접속됩니다.

 

instagram_login("USER_ID", "PASSWORD")
main_search('KEYWORD')

 

이후에는 해시태그와 기타 정보들을 크롤링해오는 걸 해 볼 예정입니다.

 

 

Comments