일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- geoDataFrame
- 해시태그
- to shp
- 2164 카드2
- 크롤링
- 웹페이지
- 알고리즘
- NLP
- convert to shp
- Crawling
- geopandas
- plotly dash
- Chat-GPT
- 백준
- clustering
- 혁신성장부문
- 인스타그램
- Merge Repositories
- 플라스크
- colab runtime
- flask
- 셀레니움
- string to list
- Selenium
- 괄호 문제
- kmeans
- 코랩 런타임
- python buildpacks
- 파이썬
- Python
Archives
- Today
- Total
코딩코딩코딩
인스타그램 해시태그 크롤링 및 분석 - 1 본문
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를 설치하셔야 합니다.
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')
이후에는 해시태그와 기타 정보들을 크롤링해오는 걸 해 볼 예정입니다.
'파이썬 > 텍스트마이닝' 카테고리의 다른 글
인스타그램 해시태그 크롤링 및 분석 - 3 (1) | 2020.07.24 |
---|---|
인스타그램 해시태그 크롤링 및 분석 - 2 (5) | 2020.07.23 |
파이썬 네이버 뉴스 일일 기사 크롤링 - 3 (1) | 2020.07.20 |
파이썬 네이버 뉴스 일일 기사 크롤링 - 2 (1) | 2020.07.20 |
파이썬 네이버 뉴스 일일 기사 크롤링 - 1 (1) | 2020.07.17 |
Comments