How to still scrape millions of tweets in 2023 using twscrape
Twitter is a great place to gather data and assess various trends. Many analytics teams have used this source for their models.
medium.com
Requirements
Python 3.10 이상
twscrape 설치
pip install twscrape
Adding working accounts
twscrape를 사용하려면 트위터 계정이 필요하다. 각 계정은 API 사용량에 제한이 있다. API 요청 이후 일정 시간 동안 요청할 수 없지만 twscrape는 계정을 사용할 수 없을 때 다른 계정으로 전환하도록 설계되어있으므로 여러 계정을 만들어서 사용하면 끊기지 않고 스크래핑을 할 수 있다.
우선 사용할 계정 정보를 accounts.txt 파일에 username:password:email:email_password 형식으로 저장해둔다.
그리고 아래의 CLI 명령으로 계정을 추가해준다.
# twscrape add_accounts <file_path> <line_format>
# line_format에는 "username", "password", "email", "email_password" 토큰이 있어야 합니다.
# 토큰 구분 기호는 파일과 동일해야 합니다
twscrape add_accounts account.txt 사용자 이름:password:email:email_password
그리고 API를 요청하기 위한 토큰을 얻기 위해 로그인 절차가 필요하다. 새 계정 추가 후 한 번은 해줘야 한다.
twscrape login_accounts
twscrape 사용
CLI를 사용하여 JSON 객체를 수신하는 방법, Python API를 사용하는 방법 2가지로 사용 가능한데, 나는 파이썬을 이용해볼 것이다.
# Using twscrape
import asyncio
from twscrape import API, gather
from twscrape.logger import set_log_level
api = API()
tweet_list = [] # 데이터 프레임을 만들기 위한 빈 리스트
q = "검색어 since:2023-10-01 until:2023-10-23" # 검색어, 검색 기간
async for tweet in api.search(q, limit=100):
# 트윗 게시날짜, 게시자아이디, 게시자닉네임, 트윗 내용, 트윗 주소
tweet_list.append([tweet.date, tweet.user.username, tweet.user.displayname, tweet.rawContent, tweet.url])
이때 q에는 검색할 내용을 넣어주면 되는데 아래 내용을 참고하여 검색어를 넣어주면 원하는 내용을 찾을 수 있다.
2022 트위터 명령어 완벽 정리
트위터에서 검색을 할 때는 명령어를 이용하여 필요한 정보들이 있는 자료를 검색할 수 있습니다. 트위터를 처음 하시거나 혹은 명령어에 대해 익숙지 않은 분들을 위해 2022년 최신 버전으로 트
dltjstod.tistory.com
잘 스크래핑 됐는지 확인하기 위해 데이터 프레임을 만들어서 확인해본다.
# Data Processing
import pandas as pd
df = pd.DataFrame(tweet_list, columns=['Date', 'User', 'Nickname', 'Tweet', 'URL']) # 데이터 컬럼명 지정
print(df) # 데이터 프레임 확인
q에 검색하고 싶은 내용을 넣어서 실행시켜보면 다음과 같이 나온다. 나는 VSCode에서 실행했더니 결과를 모두 확인할 수는 없었다. csv 파일로 저장해서 보면 컬럼명과 데이터가 올바르게 들어온 것을 확인할 수 있었다.
X(구 트위터)가 크롤링을 막아놔서 그런지 결과가 잘 나오는거 같지는 않지만...여튼 되기는 한다.
정확한 스크래핑이 필요한 사람은 트위터 developers에서 제공하는 유료 API를 사용하는게 나을것 같다.
'이것저것' 카테고리의 다른 글
[Aseprite] 픽셀아트 프로그램 Aseprite 무료 설치 (0) | 2023.09.27 |
---|