오늘은 인스타그램 크롤링!
아 너무 얕게만 하는 거 같아서 걱정이긴 한데 뭐 이거라도 하는 게 어디야 맞지맞지...?
오늘 할 거는 인스타그램 태그 검색하면 검색한 결과 이미지를 다운로드 받는 거를 해 볼거다!
먼저, 사용한 라이브러리는 BeautifulSoup, Selenium이다.
전에 beautifulSoup을 다뤄본 적이 있다.
새로 사용해 볼 라이브러리는 Selenium
Selenium이란?
- 여러 언어에서 웹 드라이버를 통해서 웹 사이트 자동화 테스트를 위한, 또는 웹 자동화를 도와주는 라이브러리
(나무위킨가 어디 출처)
Selenium을 쓰는 이유는?
- 동적 웹페이지로 구성 되어 있는 경우, requests 라이브러리만으로는 크롤링하기가 어렵다
- 원하는 웹 사이트가 프로그램을 통한 접근을 허용 하지 않는 경우에도 사용한다.
Selenium을 설치할 때는 웹 드라이버가 추가로 필요하다. 이 때 웹은 본인이 사용하는 브라우저에 맞춰서 다운로드하면 된다. 이거 어디서 보냐면 (크롬일 경우) 창 오른쪽 세로로 된 점 세개 있는 부분 -> 도움말 -> chrome 정보
https://chromedriver.chromium.org/downloads
Downloads - ChromeDriver - WebDriver for Chrome
WebDriver for Chrome
chromedriver.chromium.org
여기서 다운로드 받아서 본인이 작업하는 위치에다가 넣으면 된다.
이제 본격적으로 시작해볼깡
라이브러리를 다 import 해 주기
"""
인스타그램을 크롤링할 때, 왜 Selenium을 쓰냐면, 일반적으로 인스타그램에서는 페이지 소스가 대부분 Java Script로 되어 있다. 그래서 크롬에서 개발자 도구로 본 태그들이 안 보일거다!
왜냐면, java script는 일단 브라우저를 열고 난 다음에 페이지를 보여주면서 데이터를 불러오는 형식이다.
인스타그램은 계속 스크롤하면서 데이터들을 불러오는 형식이기 때문에 일반적으로 BeautifulSoup을 쓰지 못하고 Selenium 웹 드라이버를 사용해서 페이지를 불러와 줘야 한다.
"""
그리고 인스타그램 base url을 따준다.
baseurl = "https://www.instagram.com/explore/tags/" <- 기본이 되는 주소이다
plusurl에는 우리가 검색할 태그를 입력받아준다.
최종적으로 사용할 url은 baseurl+plusurl이 된다.
이렇게 해서 출력을 해 보면,
이렇게 검색할 태그를 입력 받을 수 있다.
난 애쉬 아일랜드 검색해서 이미지를 다운 받을거라 ashisland를 쳐 줬다.
한글로 검색하고 싶다면, url = baseurl + quote_plus(plusurl)을 해 주면 된다. 이렇게 해 보진 않았지만 되지 않을까?
크롬 웹 드라이버를 driver에 불러와준다.
driver.get(url)은 우리가 미리 설정한 url을 드라이버가 가지고 오게 하는 코드!
인스타그램 페이지를 불러오는데 시간이 걸릴 수도 있다. 그래서 time.sleep(3)으로 3초 기다린 다음, 데이터를 가지고오도록 할 것이다.
BeautifulSoup으로 html 소스를 가지고 오고,
잘 보면 이 이미지들이 가지고 있는 class name은 'v1Nh3 kIKUG _bz0w' 이다.
이것들은 class 속성이기 때문에 앞에 . 을 찍어주고 띄어쓰기를 다 없애준다. (왠지는 잘 모르겠다 강의 보고 따라한거라..)
일단 오늘은 여기까지...
글 쓰는 것도 일이구만
힘들어 죽게써ㅠㅡㅠ
이거 이어서 다 쓰면,
다음에는 Selenium 기초를 한 번 다뤄볼까한다.
아농
'프로그래밍 > 웹크롤링 & 텍스트마이닝' 카테고리의 다른 글
[파이썬 웹크롤링] 파이썬으로 네이버 영화 댓글 데이터 분석 해 보기 (0) | 2020.08.22 |
---|---|
[파이썬 웹크롤링] 웹크롤링&텍스트마이닝 2일차 (0) | 2020.08.12 |
[파이썬 웹크롤링] 웹 크롤링&텍스트마이닝 1일차 (0) | 2020.08.09 |