В рубрике полезных инструментов для работы с данными, много лет назад я столкнувшись с тем что регулярно надо откуда-то доставать из API датасеты и с тем что каждый раз много мороки писать скрипты самому и ещё дольше просить кого-то из разработчиков это делать, я написал утилиту apibackuper для скрейпинга через декларативное программирование в конфиг файлах.
Изначально она была для архивации данных в рамках Национального цифрового архива @ruarxive, но оказалась очень удобной во всех смыслах. К слову и в Dateno часть сборщиков метаданных работают на базе apibackuper
Как это работает? Точки подключения к API описываются в специальном конфигурационном файле в расширением cfg в формате configparser.
После запуска утилита последовательно делает запросы к API, сохраняет результаты в виде JSON файлов внутри ZIP контейнера и позволяет потом экспортировать результаты в формат построчного JSON (NDJSON).
Кроме простого перебора выгрузки из API, там же есть режим когда после перебора точки подключения с поиском/листанием данных нужно запросить карточку каждого объекта и/или скачать ассоциированные с данными файлы.
Оказалось очень удобным инструментом, сам пользуюсь им регулярно и надо бы его давно обновить, но руки не доходят потому что "и так работает".
Если бы я делал его сейчас то:
1. Использовал бы JSON файлы сжатые ZST вместо ZIP контейнера
2. Вместо конфиг файлов использовал бы YAML (это несложно, кстати)
3. Добавил бы систему расширений
4. Добавил бы многопоточный режим выгрузки
5. Добавил бы библиотеку шаблонов для подключения к разным типовым API.
И тд, но, в целом, и без этого всё работает. На скриншоте пример конфиг файла для выгрузки метаданных и файлов из системы "Артефакт" (ar.culture.ru) Минкультуры РФ и то как эти данные выглядят в самом API.
#opensource #datatools #data #scraping #API #digitalpreservation
Изначально она была для архивации данных в рамках Национального цифрового архива @ruarxive, но оказалась очень удобной во всех смыслах. К слову и в Dateno часть сборщиков метаданных работают на базе apibackuper
Как это работает? Точки подключения к API описываются в специальном конфигурационном файле в расширением cfg в формате configparser.
После запуска утилита последовательно делает запросы к API, сохраняет результаты в виде JSON файлов внутри ZIP контейнера и позволяет потом экспортировать результаты в формат построчного JSON (NDJSON).
Кроме простого перебора выгрузки из API, там же есть режим когда после перебора точки подключения с поиском/листанием данных нужно запросить карточку каждого объекта и/или скачать ассоциированные с данными файлы.
Оказалось очень удобным инструментом, сам пользуюсь им регулярно и надо бы его давно обновить, но руки не доходят потому что "и так работает".
Если бы я делал его сейчас то:
1. Использовал бы JSON файлы сжатые ZST вместо ZIP контейнера
2. Вместо конфиг файлов использовал бы YAML (это несложно, кстати)
3. Добавил бы систему расширений
4. Добавил бы многопоточный режим выгрузки
5. Добавил бы библиотеку шаблонов для подключения к разным типовым API.
И тд, но, в целом, и без этого всё работает. На скриншоте пример конфиг файла для выгрузки метаданных и файлов из системы "Артефакт" (ar.culture.ru) Минкультуры РФ и то как эти данные выглядят в самом API.
#opensource #datatools #data #scraping #API #digitalpreservation
1✍4❤2🔥1
В блоге Cloudflare о том как Perplexity неэтично индексируют сайты закрытые robots.txt и подменяют User-Agent, с позитивной новостью что Cloudflare от этого защищают. Мне трудно понять тут отличия Perplexity от остальных глобальных ИИ продуктов/агентов которые предпочтут тяжбы, но не этичное поведение. Как пользователю Perplexity мне удобно когда я могу получить нужны ответ оперативно, как создателю контентных проектов мне совсем не хочется потерять всю их аудиторию из-за ИИ агентов.
Проблема серьёзнее чем кажется нарастанием противостояния, пока непонятно есть ли у неё простое устраивающее всех решение. Зато я вижу как многие ресурсы огораживаются от любых ИИ агентов и иных ботов скрейпящих их материалы. Чаще всего наблюдаю это на китайских сайтах. Например, не так давно я попытался несколько разных LLM построить аналитику по объёмам и масштабам публикации датасетов в Китае на провинциальных порталах. Самый лучший результат дал анализ 3-х из более чем 50 сайтов. Проблема тут не в неспособности ИИ агентов интерпретировать результаты, а в целенаправленных блокировках по геолокации, User-Agent и любым признакам обращения от лица бота.
#ai #scraping #bots #perplexity #cloudflare
Проблема серьёзнее чем кажется нарастанием противостояния, пока непонятно есть ли у неё простое устраивающее всех решение. Зато я вижу как многие ресурсы огораживаются от любых ИИ агентов и иных ботов скрейпящих их материалы. Чаще всего наблюдаю это на китайских сайтах. Например, не так давно я попытался несколько разных LLM построить аналитику по объёмам и масштабам публикации датасетов в Китае на провинциальных порталах. Самый лучший результат дал анализ 3-х из более чем 50 сайтов. Проблема тут не в неспособности ИИ агентов интерпретировать результаты, а в целенаправленных блокировках по геолокации, User-Agent и любым признакам обращения от лица бота.
#ai #scraping #bots #perplexity #cloudflare
👍8