Перейти к основному содержимому

twarc

twarc — это командная строка и Python библиотека для архивации Twitter JSON данных.

Описание

twarc использует Twitter API для архивации твитов, пользователей и других данных Twitter в формате JSON.

Особенности

  • Twitter API: Использует официальный Twitter API
  • JSON формат: Сохраняет данные в JSON
  • CLI и библиотека: Можно использовать как инструмент или библиотеку
  • Rate limiting: Автоматически обрабатывает ограничения API

Установка

Через pip

pip install twarc

Из исходников

git clone https://github.com/DocNow/twarc
cd twarc
pip install -e .

Настройка

Получение API ключей

  1. Зарегистрируйтесь на Twitter Developer Portal
  2. Создайте приложение
  3. Получите API ключи (Consumer Key, Consumer Secret, Access Token, Access Token Secret)

Настройка twarc

twarc configure

Введите ваши API ключи при запросе.

Использование

Архивация твитов пользователя

twarc timeline username > tweets.jsonl

Архивация по поисковому запросу

twarc search "query" > search_results.jsonl

Архивация твитов по ID

twarc hydrate ids.txt > tweets.jsonl

Архивация пользователей

twarc users usernames.txt > users.jsonl

Python библиотека

Базовое использование

from twarc import Twarc

t = Twarc()
for tweet in t.search("query"):
print(tweet)

Архивация timeline

from twarc import Twarc

t = Twarc()
for tweet in t.timeline("username"):
print(tweet)

Формат данных

JSON структура

Каждый твит сохраняется как JSON объект со всей информацией из Twitter API:

{
"id": "1234567890",
"text": "Tweet text",
"created_at": "Mon Jan 01 00:00:00 +0000 2024",
"user": {
"screen_name": "username",
"name": "User Name"
},
"entities": {...},
"retweet_count": 0,
"favorite_count": 0
}

Best practices

Обработка rate limits

twarc автоматически обрабатывает rate limits, но можно настроить:

twarc --max-requests=100 search "query" > results.jsonl

Продолжение прерванной архивации

# twarc запоминает последний обработанный ID
twarc timeline username > tweets.jsonl

Фильтрация

from twarc import Twarc
import json

t = Twarc()
for tweet in t.search("query"):
tweet_data = json.loads(tweet)
if tweet_data['retweet_count'] > 10:
print(tweet)

Ограничения

  • Требует Twitter API ключи
  • Ограничения API (rate limits)
  • Не архивирует медиа файлы напрямую (только ссылки)
  • Зависит от доступности Twitter API

Сравнение с другими инструментами

ИнструментAPIФорматМедиаРекомендация
twarcTwitter APIJSONСсылкиДля Twitter данных
Social Feed ManagerМножественныеРазличныеДаДля множественных платформ
BrowsertrixНетWARCДаДля веб-архивации

Ресурсы

Связанные материалы