Python과 Selenium으로 인스타그램을 크롤링합니다.
- 크롤링 과정은 다음과 같습니다.
- imgvidDownloader.py
- ScrollFeed.py를 실행시켜 팔로워 정보를 수집해 엑셀로 저장하고, 각 feed(게시글)의 url 리스트를 수집
- GetContents.py를 실행시켜 게시물 id 명의 폴더에 사진과 비디오 저장
- TextDownloader.py
- ScrollFeed.py를 실행시켜 팔로워 정보를 수집해 엑셀로 저장하고, 각 feed(게시글)의 url 리스트를 수집
- GetEachText.py를 실행시켜 좋아요수, text, 사진, 동영상을 크롤링해 리스트로 저장시켜 반환
- MakeExcel.py로 크롤링한 정보를 엑셀로 저장
- ScrollFeed.py
- 특정 계정의 인스타그램 모바일 페이지로 접속
- 로그인
- 팔로워 정보 수집
- 모든 게시물이 보일때까지 스크롤하면서 각 게시물의 url 수집 및 텍스트로 저장
- 게시물 갯수와 다를 경우 다시 스크롤하면서 수집.(set으로 중복을 제거합니다.)
- 로그아웃
- GetContents.py
- 수집한 url을 접속하면서 사진, 동영상 크롤링해서 게시물 id를 폴더로 만들어 각 폴더에 저장
- GetEachText.py
- 수집한 url을 접속하면서 좋아요수, text, 사진, 동영상 크롤링해서 리스트로 저장
- MakeExcel.py
- 게시물 id, 좋아요수, text, 사진, 동영상 리스트의 리스트를 엑셀로 저장
- 유의할 점
- 이유는 모르겠으나 스크롤할때 게시물을 잘 못읽어올때가 있습니다. 이를 위해 갯수가 맞을 때까지 크롤링하게 됩니다.
- 각 게시물에서 사진,동영상을 가져올때 img태그는 크롤링 되나 src속성이 포함되지 않게 크롤링해와 keyerror 'src'가 나타납니다. 이부분 또한, 원인을 찾지 못했기 때문에 나타나지 않을때까지 가져오는 방식을 채택하게 되었습니다.
- 위 두사항의 원인과 해결책 아시는 분은 의견 남겨주시면 감사하겠습니다.
- 모바일 페이지로 크롤링합니다. 보다 간결한 구조에서 크롤링해오기 위함입니다.
- chromedriver를 본 폴더 안에 다운로드받아 실행해야합나다.
- 개발 예정
- 크롤링한 정보를 aws s3로 원본과, 저화질 resizing본 저장
- API로 제작