트위터에서 많은 팔로워를 크롤링하는 방법 [1]: 어떤 점들을 고려해야 할까?

트위터에서 많은 팔로워를 크롤링하는 방법 [1]: 어떤 점들을 고려해야 할까?

트위터에는 수많은 유저가 있다. 그 중에서는 단 1명의 팔로워도 모으지 못한 유저도 있지만 반대로 수백 수천만명의 팔로워를 가진 유저도 있다.

Twitter의 트위터 공식 계정에는 약 5천6백만명의 팔로워가 있다.

당장 우리가 ‘팔로워’ 를 클릭해 내용을 살펴보면 한번에 20명씩 정보를 보여준다. 스크롤을 해서 5천만명의 유저 데이터를 가져올 수는 없다.

그렇다면 어떤 방법을 써야 저 데이터를 가져올 수 있을까?

어떤 상황에 처해있나? 어떤 데이터가 필요한가? 데이터가 얼마나 필요한가?

여러가지 방법을 생각해 볼 수 있지만, 각각의 방법에는 ‘조건’이 필요하다.

예를들어, 아래와 같은 질문에 대한 응답이 데이터 수집 방법을 쓸 수 있는 조건이 된다.

  • Q. “트위터 API를 유료로 구매해서 쓸 수 있는가?”

    • 위 질문을 통해 트위터 API를 회피해야 하는지, 아니면 정직하게 지불을 하고서 사용을 해야하는지가 갈리게 된다.
  • Q. “얼마나 많은 팔로워를 수집해야 하는가?”

    • 위 질문은 두가지로 나누어서 볼 수 있다.

      1) 수집할 계정 수가 많은가

      2) 수집할 각 계정의 팔로워 수가 많은가

    • 1)의 경우는 한번에 여러명의 계정을 수집해야 한다.

    • 한편, 2)의 경우는 조금 더 어렵다.

위 조건들을 따지고, 어떤 방식으로 데이터 수집을 진행할지 선택해야 한다.

참고) 이후부터는 팔로잉/팔로워를 구분하지 않고 언급합니다.

“API 살 돈 없고, 수집할 계정 수도 많고, 엄청 많은 팔로워있는 계정도 있어요…”

위 가정들에서 어려운 상황들을 골라 가정해보자.

API를 유료로 구매할 지원금도 없고, 수집해야하는 계정 수는 수백수천을 넘어 수십만을 향해가고, 전체적으로 팔로워가 엄청 많지는 않지만 수백 수천명의 팔로워는 흔하고 수십만명 팔로워를 가진 셀럽의 계정들을 수집해야한다고 가정해보자.

문제를 하나씩 나눠서 해결해보자.

무료 API라도 쓸 것인가? vs HTML을 긁을 것인가?

API의 무료 Quota라도 사용해보자

API를 검색해보면 다음과 같이 Follower의 목록을 가져오는 API가 보인다.

공식 링크: https://developer.twitter.com/en/docs/accounts-and-users/follow-search-get-users/api-reference/get-followers-list

Follower 목록을 가져오는 API

하지만 잘 읽어보면 문제가 있다. “Rate Limited? YES.”

15분에 15개 요청이라니... 누구코에 붙이라고 ㅠㅠ

15분에 겨우 15개, 즉 1분에 1개밖에 요청을 하지 못하는 것을 볼 수 있다.

한번에 최대로 요청 가능한 수가 200개이니 1시간 = 60분에 12,000명의 정보를 가져올 수 있다. 하지만 만약 팔로워 수가 120만명인 유저 1사람이 있다? = 10시간을 투자해야 한다…

당연히, 이건 좀 아니다!

하지만 만약 수집하는 유저 수가 수백명 안쪽이고 평균 팔로워수도 수십-수백명이면 여전히 유효하고 가장 안전하고 엄밀한 방식이다.

Q. 여러 계정을 만들어서 API Key를 많이많이 발급받으면 되지 않나요?

A. 충분히 가능하지만, 최근 트위터는 API Key 발급을 위해 상당히 많은 항목(연구 계획, 필요한 데이터 범위 등등)을 요구하고 심사 기간도 굉장히 오래 걸립니다.(1주+ 소요)

그렇다면…

인증이 필요해서 ➡️ 느린 속도(Quota limit)가 걸린다면,

인증 없이 수집할 수 있다면 ➡️ 빠른 속도로 수집할 수 있겠다!

그렇다면, 어떻게 해야 ‘인증없이’ 수집할 수 있을까?

트위터에서 많은 팔로워를 크롤링하는 방법 2편: HTML 웹 크롤링을 해보자으로 이어집니다.

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×