snscrape — это парсер для служб социальных сетей (SNS). Он очищает такие вещи, как профили пользователей, хэштеги или выполняет поиск, и возвращает обнаруженные элементы, например, соответствующие сообщения.
На данный момент поддерживаются следующие сервисы:
snscrape требует Python 3.8 или выше. Зависимости пакета Python устанавливаются автоматически при установке snscrape.
Обратите внимание, что одна из зависимостей, lxml, также требует установки libxml2 и libxslt.
pip3 install snscrape
Если вы хотите использовать версию для разработчиков:
pip3 install git+https://github.com/JustAnotherArchivist/snscrape.git
Общий синтаксис CLI snscrape:
snscrape [GLOBAL-OPTIONS] SCRAPER-NAME [SCRAPER-OPTIONS] [SCRAPER-ARGUMENTS...]
snscrape --help
и snscrape SCRAPER-NAME --help
предоставляют подробную информацию об опциях и аргументах. snscrape --help
также выводит список всех доступных парсеров.
Выходными данными CLI по умолчанию является URL-адрес каждого результата.
Некоторые заслуживающие внимания глобальные варианты:
--jsonl
, чтобы получить вывод в формате JSONL. Сюда входит вся информация, извлеченная с помощью snscrape (например, содержимое сообщения, дата и время, изображения; подробности зависят от скрапера).--max-results NUMBER
, чтобы вернуть только первые NUMBER
результаты.--with-entity
, чтобы получить элемент очищаемой сущности, например, пользователя или канала. Это поддерживается не всеми парсерами. (Вы можете использовать это вместе с --max-results 0
чтобы получить только информацию об объекте.) Соберите все твиты Джейсона Скотта (@textfiles):
snscrape twitter-user textfiles
Обычно полезно перенаправить вывод в файл для дальнейшей обработки, например, в bash, используя имя файла twitter-@textfiles
:
snscrape twitter-user textfiles > twitter-@textfiles
Чтобы получить последние 100 твитов с хэштегом #archiveteam:
snscrape --max-results 100 twitter-hashtag archiveteam
Также можно использовать snscrape в качестве библиотеки Python, но на данный момент это недокументировано.
Если вы обнаружите проблему с snscrape, сообщите об этом по адресу https://github.com/JustAnotherArchivist/snscrape/issues. Если вы используете CLI, запустите snscrape с -vv
и включите вывод журнала в проблему. Если вы используете snscrape в качестве модуля, включите ведение журнала на уровне отладки, используя import logging; logging.basicConfig(level = logging.DEBUG)
(перед вообще использованием snscrape) и включите вывод журнала в проблему.
В некоторых случаях для отладки может потребоваться больше информации, чем доступно в журнале. В CLI есть опция --dump-locals
, которая позволяет выгружать все локальные переменные в snscrape на основе важных сообщений журнала (а не только при сбоях по умолчанию). Обратите внимание, что в некоторых случаях файлы дампа могут содержать конфиденциальную информацию и потенциально могут быть использованы для вашей идентификации (например, если служба включает ваш IP-адрес в свой ответ). Если вы предпочитаете организовать передачу файлов в частном порядке, просто укажите это в сообщении.
Эта программа является свободным программным обеспечением: вы можете распространять ее и/или изменять в соответствии с условиями Стандартной общественной лицензии GNU, опубликованной Фондом свободного программного обеспечения, либо версии 3 Лицензии, либо (по вашему выбору) любой более поздней версии.
Данная программа распространяется в надежде, что она будет полезна, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемой гарантии ТОВАРНОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ. Дополнительную информацию см. в Стандартной общественной лицензии GNU.
Вместе с этой программой вы должны были получить копию Стандартной общественной лицензии GNU. Если нет, см. https://www.gnu.org/licenses/.