Ivan Begtin
9.09K subscribers
2.5K photos
4 videos
113 files
5.27K links
I write about Open Data, Data Engineering, Government, Privacy, Digital Preservation and etc.

CTO&Founder of Dateno https://dateno.io

Telegram @ibegtin
Facebook - https://facebook.com/ibegtin
Email ivan@begtin.tech

Ads/promotion agent: @k0shk
Download Telegram
О том как устроена архивация сайтов в примере. Я не раз писал о том как устроена веб архивация и цифровое архивирование в принципе и среди многих проблем в этой области, далеко не последняя в том что почти весь инструментарий для этой задачи, скажем так, слегка устарелый. А на то чтобы переписать его нужны серьёзные расходы, но не инвестиционные потому что они врядли окупаются.

Один из таких инструментов - это grab-site [1] от команды ArchiveTeam, волонтеров архивирующих гибнущие веб сайты.

Его ключевые фичи - это возможность динамически настраивать списки блокировки/игнорирования и большие подборки преднастроенных правил игнорирования несодержательного контента.

Это, к слову, одна из серьёзных проблем при веб архивации, чтобы краулер не оказался в ловушке циклических перенаправлений и чтобы он не индексировал дубликаты. А также у grab-site в комплекте сервер мониторинга краулинга.

Внутри grab-site используется аналог утилиты wget под названием wpull. С очень давно не обновлявшимся кодом и чуть большими возможностями по автоматизации обработки получаемого потока данных.

Все эти инструменты из экосистемы WARC, они архивируют весь контент в WARC файлы.

Это экосистема выросшая из Интернет Архива, но переставшая развиваться уже много лет. Гораздо чаще контент с сайтов краулят не для архивации, а для обработки или извлечения данных и инструменты для архивации из WARC экосистемы для этого пригодны плохо.

Вместо них используют совсем другие краулеры, в том числе ныне популярные краулеры для AI или встроенные в инструменты вроде Elastic.

Тем не менее на фоне реформы российского Росстата архивировать его контент необходимо потому что, выражаясь аллегорически, "Почему-то каждый раз когда они снимают фильм про Робин Гуда, они сжигают нашу деревню" (c).

А я напомню про ещё один инструмент, metawarc [2] это разработанная мной несколько лет назад утилита по анализу веб архивов. Она извлекает из WARC файлов метаданные и делает рядом индексный файл с которым можно работать через SQL.

Ссылки:
[1] https://github.com/ArchiveTeam/grab-site
[2] https://github.com/datacoon/metawarc

#webarchives #digitalpreservation #opensource
👍10🔥321
В связи с грядущей реформой статистического учёта в России и тем что до конца 2025 года планируется вывод из эксплуатации системы статистики ЕМИСС (fedstat.ru) мы начали архивацию всех их общедоступных ресурсов Росстата включая сайты ЕМИСС, Росстата и его территориальных подразделений, на случай если их материалы "случайно потеряются".

Если Вы знаете какие-либо онлайн ресурсы Росстата помимо перечисленных которые необходимо подвергнуть архивации, напишите в чате к этому телеграм каналу и мы их обязательно учтём при архивации.

#webarchives #digitalpreservation #statistics #rosstat #russia
2109
Про архивацию сайтов, моё хобби, которое уже почти стало моей работой. Вот буквально несколько дней назад я мы для @ruarxive закончили архивировать все сайты Росстата и его терр. управлений. В итоге это около 315GB в сжатом виде. Много это или мало? Это нормально для такого числа сайтов и, наверное, можно было бы ещё лучше если бы добавить в исключение архивацию видеофайлов ибо кому они нужны.

Так вот, по хорошему, конечно надо проводить тотальную архивацию всех госсайтов в РФ, хотя бы ФОИВов и региональных властей. Но, есть большое НО о котором я уже писал. Подавляющее число сайтов российских органов власти недоступны из нероссийских подсетей и, хуже того, быстро блокируют доступы даже из российских.

Например, попытка архивировать сайт Таможенной службы РФ привела к блокировке краулера после выгрузки 160MB, совсем немного. Конечно можно вспомнить про возможность использования многих IP адресов, того что можно переключать прокси, но... Это всё хорошо для коммерческого парсинга и очень плохо для некоммерческой архивации.

В итоге даже с серверов/IP адресов в России можно сохранить не всё. И что с этим делать?

#webarchives #digitalpreservation
1🤔106❤‍🔥1
В рубрике, как это устроено у них, историческая статистика Италии [1] на портале Serie storiche (Timeseries) статистической службы Италии. Включает данные 1500 индикаторов по 22 темам начиная с 19 века, пока некоторым индикаторам с 1854 года.

Все данные в формате Excel файлов которые были созданы на основе статистических изданий 20го века с обзором исторической статистики и на основе исторических статсборников [2].

Ссылки:
[1] https://seriestoriche.istat.it
[2] https://seriestoriche.istat.it/index.php?id=8

#statistics #digitalpreservation #archives #data #timeseries
🔥832
В качестве регулярных напоминаний.

Я пишу в этом телеграм канале @begtin о технологиях, преимущественно, связанных с работой с данными, открытых данных, цифровой архивации и близких к этому темам почти все из которых являются, либо моей работой, либо моими хобби.

Также о том что я делаю и делают команды проектов которые я веду или с которыми я связан:
- @ruarxive - новости по цифровой и веб-архивации в контексте России и русскоязычных ресурсов
- @opendataam - открытые данные в Армении, новости о данных связанных с Арменией
- @infoculture - новости Информационной культуры, НКО ведущей ряд проектов в по открытости РФ
- @datenosearch - новости проекта поисковика по датасетам Dateno, на английском языке
- begtin.substack.com - блог/рассылка где я время от времени пишу лонгриды на русском языке
- medium.com/@ibegtin - англоязычный блог для лонгридов на английском языке. Пишу туда не очень часто, а надо бы чаще
- linkedin.com/in/ivbeg - регулярные публикации на английском языке в LinkedIn, по большей части про работу с данными.

#writings #opendata #digitalpreservation #data
👍114🔥4
В рубрике полезных инструментов для работы с данными, много лет назад я столкнувшись с тем что регулярно надо откуда-то доставать из 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
142🔥1
В рубрике как это устроено у них в США существует Research Data Alliance (Альянс исследовательских данных) и они, в том числе, занимаются тем что архивируют данные ликвидируемых госагенств США и их дочерних структур.

Например, они 7 августа проводят хакатон Data Rescue Hackathon for USAID Education Data [1], совместно с ICPSR и DataFirst, командами работающими над репозиториями исследовательских данных. Архивировать там собираются образовательные данные и иные материалы USAID поскольку уже окончательно стало понятно что USAID ликвидируется.

Мне лично интересно как они его организуют, как мотивируют участников (если дополнительно мотивируют), какие задачи ставят и так далее.

Потому что организация классических хакатонов это понятный для меня механизм, а организация хакатонов по спасению данных - это новый, но важный жанр. И он ещё много где и много раз будет актуален.

Ссылки:
[1] https://rdapassociation.org/event-6266055

#opendata #digitalpreservation #events
👍62🔥2
С 25 августа перестанут работать короткие ссылки в сокращателе ссылок от Google, сам сервис перестал работать с 2019 года, но ранее созданные ссылки действовали, теперь же и ссылки действовать перестанут. Чем вызвана такая срочность и закрытие непонятно, у корпорации однозначно были и есть ресурсы сервис поддерживать.

Команда ArchiveTeam занимается архивацией этих ссылок и всего собрано 84ТБ данных. Прогресс архивации можно отследить в трекере и там же присоединиться к архивации развернув собственный экземпляр ArchiveTeam Warrior, специальной виртуальной машины для выполнения задач в рамках проектов с распределенной архивацией цифровых материалов.

#opendata #digitalpreservation #webarchive
🔥7🤨6🌚1
А вот вам ещё цифры про портал открытых данных РФ data.gov.ru, вернее цифры про то чего там нет
В процессе архивации госсайтов РФ за 2025 год у меня на архивном сервере сейчас лежит около 1.1ТБ сжатых WARC файлов собранных с 73 госсайтов федеральных органов и их региональных подразделений.

Так вот цифры из этих архивов:
- 28 466 файлов с данными в форматах CSV, XLS и XLSX опубликовано на этих сайтах
- 22ГБ общий объём этих файлов
- большая часть файлов - это разного рода реестры с юр. лицами и ИП, а также статистика
- многие данные также внутри PDF/DOC/DOCX документов, особенно на сайтах Росстата и его терр управлений, они извлекаемы
- не все эти данные мусор, как раз там есть вполне используемые данные

И всё это не считая файлов с данными внутри ZIP и RAR архивов которых тоже немало.

Думаю что дальше всё понятно что я мог бы сказать про data.gov.ru 😉

#opendata #digitalpreservation
9🤔1🌚1
Полезное ссылки про данные, технологии и не только:
- From SEO to AIO: Why Your Content Needs to Exist in AI Training Data заметка рассказывающая о том почему нужно предоставлять свой контент в интернете для обучения ИИ. Критических ни одного, важно помнить про природу этой дискуссии. Common Crawl получили много средств от ИИ компаний в последние пару лет поскольку собранные ими данные - это один из столпов обучения на текстах.
- Common Crawl Foundation Opt-Out Registry буквально в продолжение чтения про тексты для ИИ, Common Crawl создали реестр запросов на запрет на индексирование. Его можно посмотреть в виде Google таблицы. Основная идея за этим реестром в том чтобы уведомить пользователей Common Crawl о том есть список правообладателей от которых надо держаться подальше. Список быстро прирастает
- DuckDB benchmarked against Spark про бенчмарки баз данных о том что DuckDB в 100x быстрее обрабатывает данные чем Apache Spark при тестировании на 20GB файлах Parquet. Это и логично потому что DuckDB оптимизирован под локальную обработку, а Spark под масштабирование, но и одновременно DuckDB либерализует локальную обработку данных.
- Git diagrammer онлайн сервис от стартапа Eraser по превращению репозиториев в Github в диаграммы. Любопытная бесплатная (но не с открытым кодом) штука которая может быть полезна для отрисовки некоторых типов диаграмм. Сам стартап с очень интересной идеей, но, ИМХО, усложнённой реализацией. Ту же самую идею автодокументирования и автопроектирование продуктов можно было сделать проще, понятнее и тд. На мой вкусно, конечно
- Hyperfine инструмент измерения производительности приложений в командной строке. Полезно когда надо сравнивать инструменты в режиме холодного запуска, с учётом их инициализации и выполнения задачи. Не в серверном варианте, в общем, а в рабочем окружении локально.

#opensource #ai #datatools #datadocumentation #digitalpreservation
3