크롤링_ 인스타그램( #서울맛집추천) with 파이썬

목적 : 인스타그램에서 올라오는 (#서울맛집추천) 키워드 관련 다양한 데이터를 수집한 후 분석하겠습니다. 이를 통해 최근 게시물 500개를 통해 사람들이 '서울맛집 동향'을 살펴보도록 하겠습니다. + 인스타그램에서 키워드 검색하고 그 결과 저장하는 방법 

1) 인스타그램 크롤링 

먼저 In [1] def 함수로 인스타그램의 검색 결과 url 나올수 있도록 정의합니다. 

selenium으로 크롬드라이버를 실행하도록 합니다. 간혹, chrome 업그레이드 버전 때문에 오류가 생기는 경우가 있는 이 경우, 버전을 한,두단계 낮은걸 다운로드 받으시길 바랍니다. (저도 이것 때문에 골치였어요 ㅠ) 

** 최근 인스타그램의 정책이 바뀌었는데, 아이디와 비밀번호를 입력하지 않으면, 아무것도 실행할수 없게 되었습니다. 그래서 꼭 IN [3] 처럼 인스타그램의 창이 뜬 후에 아이디와 비밀번호를 입력해주도록 해주세요. 

아래 링크로 In[3]에 해당하는 내용을 간편하게 복사하세요 *^^* 

로그인 코드 복사

마지막으로 insta_searching()함수로 '서울맛집추천'에 대한 검색결과를 확인하는 URL을 생성해서 크롬드라이버에 접속합니다.! 

그다음 저는 첫번째 게시글을 찾아 클릭하도록 함수를 만들어 주었습니다. ( 자세한 설명은 생략!^^ 궁금하면 댓글로 물어봐주세요) 

2) 게시글 정보 가져오기 

1) 현재 페이지 HTML 정보 가져오기 위해, driver. page_source 명령어를 입력해주었습니다. 이때 BeautifulSoup을 통해 필요한 정보를 추출이 가능합니다. 

2) 인스타그램 본문에 해당하는 HTML을 살펴보면, span 태그를 찾을 수 있는에, 이는 다른 속성을 하지고 있지 않아, 상위 속성인 div class="C4VMK" 를 볼 수 있어요.  --> content = soup.select('div.C4VMK > span')[0].text 로, 해당데이터의 첫번째 텍스트 부분을 가져달라는 의미입니다. 


태그는  re.findall(r'#[^\s#,\\]+', content)본문 내용에서 해시태그 가져오는 방법입니다.  re는 정규표현식에 사용되는 라이브러리라서 반드시 import re 하셔야해요. 

그리고 게시글 안의 작성일자 정보를 가져옵니다. 주의하셔야 하는게, 반드시 '2019-00-00' 식의 데이터를 가져오셔야 유의미한 데이터를 분석할 수 있어요. 

나머지 좋아요, 위치 정보를 가져옴으로써 수집한 정보를 저장하면 첫번째 게시물의 데이터를 크롤링하는 방법에 대해 배웠습니다. 

그런 후에는 다음게시글을 열는 함수를 만들어, 계속 과정을 반복할 수 있도록 만들어줍니다. ( 자세한 설명은 생략!^^ 궁금하면 댓글로 물어봐주세요) 

3)인스타그램 여러 게시글 정보 수집하기 

이때에는 위의 과정과 비슷합니다. 다만, 여기에 target = 500개 해줌으로 크롤링할 게시글 수를 정합니다. 

이후에, 수집한 데이터를  pandas의 데이터프레임으로 정리하여 저장해주면 됩니다. 

저장할 때, columns 지정해주는거 잊지마세요~! 


오늘은 인스타그램의 바뀐 정책과, 500개의 게시글을 크롤링하는 방법에 대해 배웠습니다. 사실 모든 방법을 자세하게 알려드리지 않았습니다. 궁금하면 500원!! 농담이고 간단하게 작성하기 위한 조치였습니다. 


다음에는 정리한 데이터 가공하는 방법 특히 # 해쉬태그를 가공하는 방법에 대해서 알려드릴게요.


**더 추가해주시거나 고칠게 있다면 댓글 달아주세요:) 보고 배우겠습니다 **
문제시, 바로 삭제 


댓글

인기 데이터 분석 사례

크롤링_ 인스타그램 정책 변경(로그인 추가) with python