[논문 리뷰] twAwler: A lightweight twitter crawler
twAwler는 경량이며 사용자 중심의 트위터 크롤러로, 다수의 트위터 API 엔드포인트를 활용하여 정책과 요청 제한을 준수하면서도 언어별 커뮤니티를 효율적으로 탐색하고 모니터링한다. 이는 그리스어 사용자 커뮤니티를 대상으로 한 사례로 구현되었으며, 전체 사용자 타임라인과 상호작용 그래프(재트윗, 언급, 답글, 인용, 팔로우)를 추출한다. 단일 기기에서 완전하고 정책 준수 데이터 수집이 가능하며, 관계 구조가 풍부한 7.5억 건의 트윗 데이터셋을 생성한다.
This paper presents twAwler, a lightweight twitter crawler that targets language-specific communities of users. twAwler takes advantage of multiple endpoints of the twitter API to explore user relations and quickly recognize users belonging to the targetted set. It performs a complete crawl for all users, discovering many standard user relations, including the retweet graph, mention graph, reply graph, quote graph, follow graph, etc. twAwler respects all twitter policies and rate limits, while able to monitor large communities of active users. twAwler was used between August 2016 and March 2018 to generate an extensive dataset of close to all Greek-speaking twitter accounts (about 330 thousand) and their tweets and relations. In total, the crawler has gathered 750 million tweets of which 424 million are in Greek; 750 million follow relations; information about 300 thousand lists, their members (119 million member relations) and subscribers (27 thousand subscription relations); 705 thousand trending topics; information on 52 million users in total of which 292 thousand have been since suspended, 141 thousand have deleted their account, and 3.5 million are protected and cannot be crawled. twAwler mines the collected tweets for the retweet, quote, reply, and mention graphs, which, in addition to the follow relation crawled, offer vast opportunities for analysis and further research.
연구 동기 및 목표
- 요청 제한과 트위터의 이용 약관을 준수하면서도 대규모 활성 트위터 커뮤니티를 효율적으로 크롤링하는 과제를 해결한다.
- 샘플링 기반이 아닌 완전한 데이터 수집을 가능하게 하여 언어별 사용자 커뮤니티에 대한 완전한 데이터 확보를 가능하게 하며, 다수의 계정이나 고비용 인프라에 의존하지 않는다.
- 단일 기기에서 배포 가능한 경량이며 오픈소스 도구를 제공하여 사용자 콘텐츠와 관계를 지속적이고 재시작에 강건한 방식으로 크롤링할 수 있도록 한다.
- 시간이 경과한 상호작용 그래프(팔로우, 재트윗, 언급, 답글, 인용)를 추출하여 동적 분석을 위한 고도화된 사회망 분석을 가능하게 한다.
- 사용자 ID와 메타데이터만을 추출함으로써 quasi-anonymized 데이터 공유를 지원하며, 트위터의 데이터 재사용 정책과 일치시킨다.
제안 방법
- 사용자 타임라인을 수집하기 위해 트위터의 /statuses/user_timeline 엔드포인트를 사용하며, 한 사용자당 최대 3,200개의 트윗을 수집한다. 요청 오버헤드를 최소화하고 트윗 손실을 방지하기 위해 트윗 생성 예측량이 높거나 이전 크롤링 이후 시간이 오래 지난 사용자를 우선순위로 정한다.
- 이중 우선순위 크롤링 전략을 적용한다: 이전 크롤링 이후 예상 트윗 수와 이전 방문 이후 경과 시간을 기반으로 순서를 정함으로써 신선도와 효율성의 균형을 이룬다.
- /statuses/lookup 엔드포인트를 활용하여 재트윗, 답글, 인용 트윗을 탐색하고 크롤링함으로써 전체 스레드 재구성과 상호작용 그래프 마이닝을 가능하게 한다.
- 스트리밍 API인 /statuses/filter를 사용하여 그리스어 정지어를 기반으로 트래킹 대상 사용자 집합을 초기화하고, 기존에 트래킹 중인 사용자의 재트윗을 통해 새로운 사용자를 확장한다.
- 크롤링 간 사용자 상태를 지속적으로 추적하며, 그리스어 사용자, 비그리스어 사용자, 정지된 계정, 삭제된 계정, 보호된 계정, 비활성 계정을 포함한 집합을 유지하여 데이터 일관성을 확보한다.
- 모든 크롤링된 데이터—팔로우, 재트윗, 언급, 답글, 인용, 좋아요, 리스트 관계—를 시간 태그와 함께 처리하고 저장하여 동적 네트워크 분석을 지원한다.
실험 결과
연구 질문
- RQ1단일 사용자 자격 정보와 단일 기기에서 요청 제한이나 트위터 이용 약관 위반 없이 언어별 사용자 커뮤니티의 공개 가능한 모든 콘텐츠를 효율적으로 탐색하고 모니터링할 수 있는 방법은 무엇인가?
- RQ2twAwler와 같은 사용자 중심 크롤러가 요청 오버헤드와 트윗 손실을 최소화하면서도 재트윗, 언급, 답글, 인용 등의 전체 상호작용 그래프를 얼마나 잘 재구성할 수 있는가?
- RQ3단일 자격 정보와 단일 기기에서 대규모 활성 사용자 커뮤니티의 완전하고 장기적인 크롤링을 유지하는 데 있어 성능과 확장성은 어떠한가?
- RQ4twAwler가 수집된 데이터에서 시간 태그가 부여된 다수의 관계 구조를 추출함으로써 고도화된 사회망 분석을 얼마나 효과적으로 지원할 수 있는가?
- RQ5twAwler는 사용자 ID와 메타데이터만을 노출시킴으로써 quasi-anonymized 데이터 공유와 이전 연구의 복제를 가능하게 할 수 있으며, 분석 유용성은 유지되는가?
주요 결과
- twAwler는 단일 사용자 자격 정보와 데스크톱 PC만을 사용하여 20개월 동안 총 7.5억 건의 트윗(그리스어 트윗 4.24억 건 포함)과 7.5억 건의 팔로우 관계를 성공적으로 크롤링했다.
- 시스템은 30만 개의 트위터 리스트를 발견하여 1.19억 개의 멤버 관계와 2.7만 개의 구독 관계를 확보하였으며, 커뮤니티 기반 사용자 그룹화 분석이 가능했다.
- 5200만 명의 고유 사용자를 식별하였고, 이 중 29.2만 명은 정지된 계정, 14.1만 명은 삭제된 계정이었으며, 350만 명의 보호된 계정은 크롤링 대상이 되지 못했다.
- 고활동 및 오랫동안 비활동 상태인 사용자를 우선순위로 정함으로써, 기준 전략 대비 1건당 요청 부하를 50% 감소시켜 크롤링 효율성을 크게 향상시켰다.
- 시간 태그가 부여된 재트윗, 언급, 답글, 인용 그래프를 완전히 재구성할 수 있었으며, 이는 동적 네트워크 분석과 확산 패턴 연구를 가능하게 했다.
- twAwler가 생성한 데이터셋은 그리스어 감성 사전를 활용한 감성 분석을 포함한 고도화된 분석을 지원하며, 그리스어 트위터 이벤트에 관한 이전 연구의 복제를 완전한 관계적 맥락에서 가능하게 한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.