[+ бонус в конце поста]
Приветствую случайных гостей и постояльцев форума!
Не так давно по долгу службы, потребовалось сдампить в оффлайн Твиттер-профиль одного пользователя. Признаться честно, с твиттеровским АПИ прежде не сталкивался, а вникать не очень хотелось ради написания одного скрипта (да и аккаунта у меня нет), поэтому побрел на поиски решения в сеть. Сказать, что существует целая куча готовых инструментов для подобных задач — значит не сказать ничего. За 10 минут была открыта целая галактика Твиттер-загрузчиков всех цветов и расцветок: от небольших самопальных Python-скриптов с довольно скудным функционалом, грубо выводящих результат прямо в консоль (романтично, но неудобно), до больших платных веб-сервисов, красиво заворачивающих результат в Excel-таблички. Однако на просторах Гитхаба (привет, Микрософт!) была найдена очень милая тулза, которой не смог не поделиться с Миром, к тому же, как выяснилось я
уже сталкивался с этим разрабом. Тесен мир.
Утилита носит название
tweetlord (довольно пафосно) и умеет дампить 5 категорий профиля Твиттера:
- общая сводка о профиле пользователя;
- друзья (aka подписки);
- фолловеры (aka подписчики);
- понравившиеся твиты;
- лента пользователя.
В результате генерится красивый Excel-док (бесплатно, Боже, храни оперсорс!), содержащий те разделы, которые мы попросили загрузить. Но самой интересной фишкой, на мой взгляд, является возможность смены авторизаций "на ходу": в файле настроек автор разрешает указать несколько кредов от dev-аккаунтов Твиттера (их для начала нужно
получить, разумеется, и, кстати, этот процесс
усложнился с июля этого года, к сожалению), что позволяет сократить время ожидания на дамп страничек. Кончено, "нельзя обойти ограничения системы, не выходя за рамки самой системы", и к
ограничениям Твиттер-АПИ это относится самым прямым образом, но немного облегчить их тяжкий гнёт можно попробовать

(да-да, все-таки пришлось покапаться в апишных доках).
Отнял (шантажом и запугиванием) у друга авторизационные данные для того, чтобы продемонстрировать скрипт в действии.
1. Подготовимся к работе:
Bash:
$ git clone https://github.com/snovvcrash/tweetlord && cd tweetlord
$ virtualenv -p python3 tw
$ source tw/bin/activate
(tw) $ pip install -r requirements.txt
(tw) $ chmod +x tweetlord.py
2. И сохраним
Твиттер-профиль всеми любимых
Positive Technologies (можно указать как непосредственно число выгружаемых сущностей для каждой категории, так и просто
-1, что будет значит "забрать из категории все, что есть"):
K P A C U B O, мне нрав =)
[БОНУС] И, о-о-о просто прелесть —
жук скарабей из Амитивилля еще один интересный
репозиторий на там том же Гитхаб-аккануте: парсер "Моего Мира@Mail.ru" (также на питоне). Может сложиться впечатление, что я рекламирую чувака, но нет, просто так складывается

. Просто никогда не видел реализаций подобных парсеров в открытом доступе, и всегда было интересно, как они устроены. И хотя в этом случае это скорее демо-версия (не очень широкий функционал), рекомендую к изучению тем, кто хотел бы познакомиться с Селениумом (мощный движок для эмуляции действий веб-браузеров).
Скриншот из репозитория:
Спасибо за внимание :3
Links
Комментарии
1