F(b)arc
Репозиторий justinlittman/fbarc переведён в архив, последние изменения — январь 2018 года. С 2018 года Meta существенно ограничила Graph API: чтение публичного контента чужих страниц требует отдельного разрешения (Page Public Content Access) и проверки приложения. На практике инструмент неработоспособен.
Альтернативы: для собственных данных — официальная выгрузка Facebook; для публичных страниц — браузерная архивация через Browsertrix; для исследователей — Meta Content Library (см. Facebook).
F(b)arc («b» не произносится) — инструмент командной строки и Python-библиотека для архивации данных Facebook через Graph API. Создан по образцу twarc.
Как он устроен
Данные Facebook представлены как граф:
- узлы — страницы, альбомы, фотографии и т. д., у каждого есть ID и тип;
- поля — атрибуты узла (имя, ID);
- рёбра — связи между узлами (например, фотографии страницы).
F(b)arc извлекает части графа по определениям (definitions) — конфигурационным файлам на Python, где для каждого типа узла указано, какие поля и рёбра запрашивать. Определения лежат в каталогах definitions и local_definitions.
Установка
Пакета на PyPI нет (в README: «pip install coming once f(b)arc is more stable»). Установка из исходников:
git clone https://github.com/justinlittman/fbarc.git
cd fbarc
pip install -r requirements/requirements3.txt
python fbarc.py -h
Использование (по README)
# Сохранить ключи приложения (app id, app secret) в ~/.fbarc
python fbarc.py configure
# Получить граф страницы на два уровня вглубь
python fbarc.py graph page 1191441824276882 --levels 2 --pretty > page.jsonl
# Все доступные поля и связи узла
python fbarc.py metadata 1191441824276882 --pretty
# URL запроса к Graph API для узла по определению
python fbarc.py url page 1191441824276882
Ключи можно передать и через переменные окружения APP_ID, APP_SECRET. Для просмотра собранного JSON в README описан локальный просмотрщик fbarc_viewer.py.
Команды взяты из README последней версии репозитория (2018); работоспособность с текущим Graph API не проверялась.
Ограничения
- Проект в архиве и не обновляется.
- Получение данных пользователей не поддерживается.
- Инкрементальная архивация невозможна (Graph API этого не позволяет, по словам автора).
- Доступ к публичному контенту чужих страниц требует разрешений, которые Meta выдаёт после проверки приложения.
Ресурсы
Связанные материалы
- Facebook — актуальные способы архивации
- Как сохранить данные из Facebook
- Архивация социальных сетей