트위터가 소셜 네트워크가 한창 성장하던 좋은 시절이 지나가고 이제 신규 사용자 증가량이 줄어들었다. 구글에서 twitter active user stats을 검색하면 2014 ~ 2015년 이후로 성장세가 크게 줄었다는 것을 볼 수 있다. 하지만 연구하는 입장에서는 아직 트위터에 올라온 수많은 사람들의 트윗이 그렇게 매력적일 수 없다. 데이터 량이 많고, 수집 방법이 쉽기 때문이다. 


트위터에서 데이터를 수집하는 방법은 트위터에서 제공하는 자체 API로 특정 위치에서 발생하는 전체 트윗 중 1퍼센트를 랜덤하게 받아보는 방법이 있다. 하지만 이 포스트에서는 트위터에서 특정 트윗을 정했을 때, 그 트윗을 리트윗 한 사용자 목록을 직접 크롤링하는 방법을 보이고자 한다.


웹사이트는 보통 모바일 화면이 인터페이스가 단순해서 크롤링이 쉽다. 크롤링 코드를 작성하기 전에 직접 특정 메시지에 접근해서 리트윗 사용자 목록을 확인해보자.


먼저 트위터에 로그인한다(https://mobile.twitter.com/login). 모바일 트윗 로그인 화면이 아래 그림처럼 나타난다.


[그림 1. 모바일 트위터 로그인 화면]



그리고 관심 있는 사용자의 메시지를 하나 클릭해보자. 예제에서는 파이썬 소프트에서 올린 트윗이다(https://mobile.twitter.com/ThePSF/status/995317681044717570).



[그림 2. 리트윗 사용자 목록을 얻고자하는 메시지]



위 그림의 붉은색으로 표시한 곳을 보면 8명이 리트윗했다는 것을 알 수 있다. 저 버튼을 클릭해보면 아래 그림 처럼 이 트윗을 RT한 사람 목록이 나타난다 (https://mobile.twitter.com/ThePSF/status/995317681044717570/retweets).


[그림 3. 리트윗 사용자 목록 예시]


위 그림을 접근할 수 있는 주소는 https://mobile.twitter.com/ThePSF/status/995317681044717570/retweets 와 같은 형태다.


이 주소에서 ThePSF는 이 트윗을 올린 사용자 아이디이고, status/ 와 /retweets 사이의 숫자는 메시지 아이디로 모든 메시지를 구별 가능하게 해주는 유일한 값이다.


여기서 힌트를 얻어 데이터베이스에 사용자 아이디와 메시지 아이디가 저장되어 있다고 가정하고, 이를 자동으로 크롤링하는 방법을 다음 글에서 알아보자.

Posted by 공돌이pooh

댓글을 달아 주세요