티스토리 뷰
from selenium import webdriver
driver = webdriver.Chrome('/users/eunee/Downloads/chromedriver_win32/chromedriver')
driver.get('https://www.instagram.com/explore/locations/1014031024/')
driver.find_elements_by_xpath("//*[@id='react-root']/section/main/article/div[2]/div/div[1]/div[1]/a/div/div[1]")
driver.find_elements_by_xpath('img')
PM 2 : 20 ~ PM 7 : 10
약 다섯시간 뻘짓의 결과 (파이참 돌리는 데 두시간 보냈다.)
얻고싶은 결과
인스타그램에서 '광화문광장'을 장소로 태깅한 사람들이 어떤 해시태그를 함께 사용했는지 알고싶다.
이걸 파이썬으로 .csv 형태로 가져온 다음, R이나 excel로 정리하는 게 목표.
각각의 게시글에 어떤 해시태그가 사용되었는지 궁금하다.
어제 시도한 방법
instaR 패키지를 이용해 R에서 돌리기 : 인스타그램 api 규정 강화로 실패.
나름의 코딩
1. 인스타그램 상에서 광화문광장의 location id는 1014031024 이고, driver.get 을 이용해 자동으로 광화문광장을 검색하게 했다.
2. 크롬 개발자도구(F12)를 활용해 보니 내가 궁금한 데이터들은
여기 있었다.
공통적으로 class = "_4rbun" 안에 있었고, img alt가 얘들을 묶는 최소 단위인 것 같다.
driver.find_elements_by_xpath("//*[@id='react-root']/section/main/article/div[2]/div/div[1]/div[1]/a/div/div[1]")
driver.find_elements_by_xpath('img')
그래서 XPath를 복사해 왔고(element들을 바로 가져오는 것보다 효율적인 것 같음)
img 기준으로 찾아라 라고 나름 해본 것 같다.
막힌 부분
1. driver.find_elements_by_xpath 까지는 에러 없이 돌아갔다. 그런데 목적은 find가 아니라 get인걸.. get은 어떻게 하지?
2. 새로운 게시글을 로딩하기 위해서는 selenium이 페이지를 꾸준히 scroll해야 한다. (https://www.linkedin.com/pulse/scraping-instagram-selenuim-aman-khalid) 를 보니 마우스를 selenium 상에서 움직이기 위해 ActionChains가 필요한 것 같다. 그래서
from selenium.webdriver.common.action_chains import ActionChains
를 해봤는데, 회색으로 코드가 변한다. (파이썬 버전 문제일까)
3. 게다가 BeautifulSoup도 같은 이유로 안됨. 패키지도 파이썬도 다 최신버전인데?
그래서..
최근 게시글 500개를 모을 때까지 계속 scroll 하면서
img alt 안에 있는 텍스트들을 scv 파일로 저장하고 싶다.
어쩌면 좋을까..
https://www.linkedin.com/pulse/scraping-instagram-selenuim-aman-khalid
https://nycdatascience.com/blog/student-works/scraping-instagram-for-hashtags/
이 블로그들을 참고하고 있다.