Подготовлена бета версия утилиты командной строки wparc [1] архивации данных из сайтов Wordpress.
Утилита использует стандартное API предоставляемое CMS Wordpress и доступной по адресу /wp-json/. Поскольку на Wordpress работает огромное число сайтов СМИ и личных сайтов, то утилита будет необходима для получения быстрых дампов данных, значительно быстрее чем классические веб-краулеры.
Подробнее о структурах данных можно прочитать в документации Wordpress REST API [2].
Утилита поддерживает две команды:
- dump - выгрузить все данные через обход точек подключения к API, результатом являются файлы в форматах .json и .jsonl
- getfiles - выгрузка всех медиа файлов перечисленных в файле wp_v2_media.jsonl полученного после исполнения команды dump
Примеры сайтов на Wordpress: duma-rad.ru, www.iephb.ru, paperpaper.ru, agentura.ru и многие другие.
Ограничения:
- некоторые владельцы сайтов на Wordpress блокируют доступ к /wp-json/ без авторизации и из этих сайтов невозможно пока извлечь данные
- у старых версий версий Wordpress отсутствует точка подключения /wp-json/ и также невозможно скачать данные таким способом.
В будущем утилита будет поддерживать команды проверки сайта на возможность выгрузки данных, упаковывать их в пакет данных (data package) для долгосрочного сохранения и поддерживать выгрузку данных из Wordpress даже без доступного API (по определенным шаблонам этой CMS).
Найденные ошибки заполняйте в issues репозитория проекта wparc [3]
Ссылки:
[1] https://github.com/ruarxive/wparc
[2] https://developer.wordpress.org/rest-api/
[3] https://github.com/ruarxive/wparc/issues
#wordpress #webarchives #digitalpreservation #opensource #tools
Утилита использует стандартное API предоставляемое CMS Wordpress и доступной по адресу /wp-json/. Поскольку на Wordpress работает огромное число сайтов СМИ и личных сайтов, то утилита будет необходима для получения быстрых дампов данных, значительно быстрее чем классические веб-краулеры.
Подробнее о структурах данных можно прочитать в документации Wordpress REST API [2].
Утилита поддерживает две команды:
- dump - выгрузить все данные через обход точек подключения к API, результатом являются файлы в форматах .json и .jsonl
- getfiles - выгрузка всех медиа файлов перечисленных в файле wp_v2_media.jsonl полученного после исполнения команды dump
Примеры сайтов на Wordpress: duma-rad.ru, www.iephb.ru, paperpaper.ru, agentura.ru и многие другие.
Ограничения:
- некоторые владельцы сайтов на Wordpress блокируют доступ к /wp-json/ без авторизации и из этих сайтов невозможно пока извлечь данные
- у старых версий версий Wordpress отсутствует точка подключения /wp-json/ и также невозможно скачать данные таким способом.
В будущем утилита будет поддерживать команды проверки сайта на возможность выгрузки данных, упаковывать их в пакет данных (data package) для долгосрочного сохранения и поддерживать выгрузку данных из Wordpress даже без доступного API (по определенным шаблонам этой CMS).
Найденные ошибки заполняйте в issues репозитория проекта wparc [3]
Ссылки:
[1] https://github.com/ruarxive/wparc
[2] https://developer.wordpress.org/rest-api/
[3] https://github.com/ruarxive/wparc/issues
#wordpress #webarchives #digitalpreservation #opensource #tools
GitHub
GitHub - ruarxive/wparc: Wordpress API data and files archival command line tool
Wordpress API data and files archival command line tool - GitHub - ruarxive/wparc: Wordpress API data and files archival command line tool
Для тех кто готов помогать с архивацией сайтов, мы начали собирать задачи в которых нужна помощь. Большая часть задач являются техническими, например, по сбору сайтов порталов и разделов с открытыми данными в России [1] и по развитию инструментов архивации данных из API [2]․
Общий список задач оформлен в виде проекта на Github [3], новые задачи по остальным проектам будут собраны там же.
Сейчас у нас больше задач технических, но если Вы видите какие-то пробелы или необходимость в инструментах/проектах/работах по архивации, то пишите в чате к этому каналу, обязательно их учтём.
Ссылки:
[1] https://github.com/ruarxive/rudatarchive/issues
[2] https://github.com/ruarxive/apibackuper/issues
[3] https://github.com/orgs/ruarxive/projects/1/views/1
#digitalpreservation #opensource #ruarxive
Общий список задач оформлен в виде проекта на Github [3], новые задачи по остальным проектам будут собраны там же.
Сейчас у нас больше задач технических, но если Вы видите какие-то пробелы или необходимость в инструментах/проектах/работах по архивации, то пишите в чате к этому каналу, обязательно их учтём.
Ссылки:
[1] https://github.com/ruarxive/rudatarchive/issues
[2] https://github.com/ruarxive/apibackuper/issues
[3] https://github.com/orgs/ruarxive/projects/1/views/1
#digitalpreservation #opensource #ruarxive
GitHub
Issues · ruarxive/rudatarchive
Russian open data portals and websites archival campaign - Issues · ruarxive/rudatarchive
Национальный цифровой архив
Началась кампания по архивации материалов с веб-сайтов избирательных комиссий муниципальных образований (ИКМО). Что случилось? 14 марта 2022 г. были внесены поправки законом №60-ФЗ в закон №67-ФЗ, согласно которым был упразднен институт ИКМО. Что значит:…
Как сохранять исходный код? Как сохранять код публичных репозиториев, который может исчезнуть, например, в связи с закрытием организации или проектов?
Проект Software Heritage [1] специализируется на архивации всего общедоступного исходного кода. Сбор кода осуществляется автоматически, используя такие системы контроля версий, как Git, Mercurial, Subversion и Bazaar. Проект уже охватывает крупнейшие платформы с исходным кодом, а также позволяет самостоятельно добавлять туда репозитории с помощью сервиса «Save code now» [2].
А в июне добавился новый сервис «Add forge now» [3] для добавления новых источников открытого кода — платформ на базе Gitlab, Bitbucket, Gitea, cgit, Hectapod и других подобных продуктов.
Ссылки:
[1] https://softwareheritage.org
[2] https://archive.softwareheritage.org/save/
[3] https://archive.softwareheritage.org/add-forge/request/create/
#digitalpreservation #opensource #sourcecode
Проект Software Heritage [1] специализируется на архивации всего общедоступного исходного кода. Сбор кода осуществляется автоматически, используя такие системы контроля версий, как Git, Mercurial, Subversion и Bazaar. Проект уже охватывает крупнейшие платформы с исходным кодом, а также позволяет самостоятельно добавлять туда репозитории с помощью сервиса «Save code now» [2].
А в июне добавился новый сервис «Add forge now» [3] для добавления новых источников открытого кода — платформ на базе Gitlab, Bitbucket, Gitea, cgit, Hectapod и других подобных продуктов.
Ссылки:
[1] https://softwareheritage.org
[2] https://archive.softwareheritage.org/save/
[3] https://archive.softwareheritage.org/add-forge/request/create/
#digitalpreservation #opensource #sourcecode
Forwarded from Ivan Begtin (Ivan Begtin)
В рубрике интересных наборов данных Bible geocoding data [1] набор данных по геокодированию мест упомянутых в библии. Автор занимался этим с 2007 года и в прошлом году существенно обновил предыдущую работу. О самой инициативе и данные для Google Earth в формате KMZ есть на его сайте [2] и там же у него на сайте OpenBible разного рода эксперименты по визуализации [3].
Из весьма интересного - это AI-Assisted Bible Study [4] суммаризатор ответов и вопросов по главам библии через использование ИИ.
В данном случае библия важный пример, но сам подход ей не ограничивается. Один из путей/способов развития цифровой гуманитаристики - это подходы "всё-код" и "всё-данные". Любое художественное, религиозное или документальное произведение можно рассматривать как базу данных. Можно, например, геокодировать "Войну и мир", превращать в граф знаний "Властелин колец" и остальные произведения Толкиена, проводить интерактивную реконструкцию исторических событий. О многих подобных проектах я пишу время от времени [5].
Важное отличие современных проектов в этой области - это открытость данных и кода. Открытые проекты позволяют создавать новые проекты/продукты/исследования на их основе.
Ссылки:
[1] https://github.com/openbibleinfo/Bible-Geocoding-Data
[2] https://www.openbible.info/geo/
[3] https://www.openbible.info/labs/
[4] https://www.openbible.info/labs/ai-bible-study/
[5] https://t.iss.one/begtin/4147
#datasets #opensource #opendata #digitalhumanities
Из весьма интересного - это AI-Assisted Bible Study [4] суммаризатор ответов и вопросов по главам библии через использование ИИ.
В данном случае библия важный пример, но сам подход ей не ограничивается. Один из путей/способов развития цифровой гуманитаристики - это подходы "всё-код" и "всё-данные". Любое художественное, религиозное или документальное произведение можно рассматривать как базу данных. Можно, например, геокодировать "Войну и мир", превращать в граф знаний "Властелин колец" и остальные произведения Толкиена, проводить интерактивную реконструкцию исторических событий. О многих подобных проектах я пишу время от времени [5].
Важное отличие современных проектов в этой области - это открытость данных и кода. Открытые проекты позволяют создавать новые проекты/продукты/исследования на их основе.
Ссылки:
[1] https://github.com/openbibleinfo/Bible-Geocoding-Data
[2] https://www.openbible.info/geo/
[3] https://www.openbible.info/labs/
[4] https://www.openbible.info/labs/ai-bible-study/
[5] https://t.iss.one/begtin/4147
#datasets #opensource #opendata #digitalhumanities
Forwarded from Ivan Begtin (Ivan Begtin)
В рубрике полезных инструментов работы с данными, я выложил в открытый доступ очередную маленькую утилиту filegetter [1] для проектов цифрового архива (ruarxive.org, телеграм канал @ruarxive).
Утилита делалась когда-то для тех случаях когда в файле набора данных есть ссылки на какие-то файлы, например, PDF/DOC документы или изображения или ещё что-то что надо собрать вместе с набором данных. Такие файлы можно собирать разными способами, например, набором скриптов для командной строки или из скрипта на любом скриптовом языке. Но в какой-то момент это стало довольно неудобно каждый раз писать программу на на сто строк кода, когда можно было бы описать правила в 5 строках конфигурационного файла.
Поэтому на базе другой утилиты, apibackuper [2], созданной для архивации данных в API была быстро сделана эта утилита которая так и пролежала почти год пока у меня не нашлось немного времени сделать к ней документацию и примеры.
Так вот примеры:
- выгрузка файлов приложенных к проекту бюджета с сайта Госдумы [3]
- выгрузка отчетов политических партий с сайта ЦИК РФ [4]
- выгрузка изображений из каталога музейного фонда [5]
Всё это довольно простые примеры, когда файлы выкачиваются из первоисточников и складываются внутрь ZIP контейнера, а рядом сохраняется файл с метаданными.
Главное применение - архивация сопутствующих файлов привязанных к наборам данных.
В итоге, рано или поздно, хочется это упаковать в связанные между собой инструменты для цифровой архивации. Их по отдельности уже много: архивация Wordpress, API, файлов, веб-сайтов, телеграм и других цифровых объектов и типов источников данных и контента.
Ссылки:
[1] https://github.com/ruarxive/filegetter
[2] https://github.com/ruarxive/fapibackuper
[3] https://github.com/ruarxive/filegetter/tree/main/examples/budget2023
[4] https://github.com/ruarxive/filegetter/tree/main/examples/rupolitparties
[5] https://github.com/ruarxive/filegetter/tree/main/examples/goskatalog
#opendata #digitalpreservation #webarchives #opensource
Утилита делалась когда-то для тех случаях когда в файле набора данных есть ссылки на какие-то файлы, например, PDF/DOC документы или изображения или ещё что-то что надо собрать вместе с набором данных. Такие файлы можно собирать разными способами, например, набором скриптов для командной строки или из скрипта на любом скриптовом языке. Но в какой-то момент это стало довольно неудобно каждый раз писать программу на на сто строк кода, когда можно было бы описать правила в 5 строках конфигурационного файла.
Поэтому на базе другой утилиты, apibackuper [2], созданной для архивации данных в API была быстро сделана эта утилита которая так и пролежала почти год пока у меня не нашлось немного времени сделать к ней документацию и примеры.
Так вот примеры:
- выгрузка файлов приложенных к проекту бюджета с сайта Госдумы [3]
- выгрузка отчетов политических партий с сайта ЦИК РФ [4]
- выгрузка изображений из каталога музейного фонда [5]
Всё это довольно простые примеры, когда файлы выкачиваются из первоисточников и складываются внутрь ZIP контейнера, а рядом сохраняется файл с метаданными.
Главное применение - архивация сопутствующих файлов привязанных к наборам данных.
В итоге, рано или поздно, хочется это упаковать в связанные между собой инструменты для цифровой архивации. Их по отдельности уже много: архивация Wordpress, API, файлов, веб-сайтов, телеграм и других цифровых объектов и типов источников данных и контента.
Ссылки:
[1] https://github.com/ruarxive/filegetter
[2] https://github.com/ruarxive/fapibackuper
[3] https://github.com/ruarxive/filegetter/tree/main/examples/budget2023
[4] https://github.com/ruarxive/filegetter/tree/main/examples/rupolitparties
[5] https://github.com/ruarxive/filegetter/tree/main/examples/goskatalog
#opendata #digitalpreservation #webarchives #opensource
GitHub
GitHub - ruarxive/filegetter: A command-line tool to collect files from public data sources using URL patterns and config files
A command-line tool to collect files from public data sources using URL patterns and config files - ruarxive/filegetter
Forwarded from Ivan Begtin (Ivan Begtin)
Я ранее регулярно рассказывал как работать с веб-архивами и про инструменты которые мы создаём для работы с ними. За пару отпускных дней удалось вернуться к давним планам по улучшению инструментов по работе с ними и пора рассказать о развитии инструмента metawarc [1].
Metawarc - это утилита командной строки созданная изначально для задач цифрового дознания, сбора данных из архивов веб- сайтов. Я лично активно её применял в задачах исследований/расследований, вроде "Государство как пират" [2] о том как косвенные следы пиратского ПО находятся в документах на сайтах госорганов.
Эта утилита работает с WARC файлами, слепками веб-сайтов которые умеют создавать такие инструменты как wget, wpull, Heritrix и другие краулеры веб-сайтов из так называемой экосистемы WARC.
Изначальные функции инструмента были в том чтобы заглянуть в содержание WARC файла, перебрать каждую запись, найти попадающие под типы офисных документов и из каждого офисного документа (.doc, .docx, .xls и других) извлечь кто его создал, какая компания, когда и тд. Задача которая относится скорее к цифровому дознанию чем к цифровой архивации. Цифровое дознание (digital forensic) - это, в принципе, одно из применений веб-архивов и цифровых архивов в принципе.
Но кроме цифрового дознания есть много других областей в которых нужна обработка WARC файлов. Например, извлечение данных определенного типа, вроде файлов Excel или извлечение содержания веб-страниц для последующего полнотекстового индексирования или анализ полноты загруженных файлов и упрощение их обработки.
Поэтому утилиту я, наконец-то, обновил изменив команду index, теперь она не генерирует JSON файл с метаданными, а создает базу SQLite куда эти метаданные кладет. Это не метаданные внутри офисных файлов, но метаданные HTTP запросов и параметров записей в WARC. Их использование сильно ускоряет другие задачи, например, это новые команды поддерживаемые metawrc - dump, stats, list, export
Команда stats выводит статистику по числу записей в WARC файле в разрезе расширений файлов или типов контента (mime)
Команда list позволяет листать записи в WARC файле передавая в качестве параметров список расширений, список типов контента или запрос к SQLite базе данных (кусок SQL запроса после WHERE).
Команда dump работает как list, но для сохранения выбранный файлов в отдельную папку. Поскольку не все файлы в WARC можно сохранять с полным путем, то файлы сохраняются каждый с уникальным идентификатором и к ним прилагается список файлов с соответствием каждого файла ссылке в WARC файле.
Команда export позволяет выгружать содержимое WARC файла в машиночитаемом виде. Она даёт возможности экспортировать заголовки из WARC файла в формате JSON lines и содержимое HTML страниц для полнотекстового индексирования, например, с помощью Opensearch, Elastic или Meilisearch.
Инструмент будет полезен всем кто изучает веб сайты, работает с архивами в формате WARC и создает их. Желающие могут воспользоваться, к примеру, архивами сайтов Мемориала [3] или архивами сайтов Роснано [4] которые мы сохраняли в @ruarxive в 2021 году.
Ошибки, идеи и предложения пишите в Issues на github [5]
Ссылки:
[1] https://github.com/datacoon/metawarc
[2] https://begtin.tech/government-piracy/
[3] https://cdn.ruarxive.org/public/webcollect2021/memorial2021/
[4] https://cdn.ruarxive.org/public/webcollect2021/rusnano2021/
[5] https://github.com/datacoon/metawarc/issues
#opensource #webarchives #digitalpreservation #opendata
Metawarc - это утилита командной строки созданная изначально для задач цифрового дознания, сбора данных из архивов веб- сайтов. Я лично активно её применял в задачах исследований/расследований, вроде "Государство как пират" [2] о том как косвенные следы пиратского ПО находятся в документах на сайтах госорганов.
Эта утилита работает с WARC файлами, слепками веб-сайтов которые умеют создавать такие инструменты как wget, wpull, Heritrix и другие краулеры веб-сайтов из так называемой экосистемы WARC.
Изначальные функции инструмента были в том чтобы заглянуть в содержание WARC файла, перебрать каждую запись, найти попадающие под типы офисных документов и из каждого офисного документа (.doc, .docx, .xls и других) извлечь кто его создал, какая компания, когда и тд. Задача которая относится скорее к цифровому дознанию чем к цифровой архивации. Цифровое дознание (digital forensic) - это, в принципе, одно из применений веб-архивов и цифровых архивов в принципе.
Но кроме цифрового дознания есть много других областей в которых нужна обработка WARC файлов. Например, извлечение данных определенного типа, вроде файлов Excel или извлечение содержания веб-страниц для последующего полнотекстового индексирования или анализ полноты загруженных файлов и упрощение их обработки.
Поэтому утилиту я, наконец-то, обновил изменив команду index, теперь она не генерирует JSON файл с метаданными, а создает базу SQLite куда эти метаданные кладет. Это не метаданные внутри офисных файлов, но метаданные HTTP запросов и параметров записей в WARC. Их использование сильно ускоряет другие задачи, например, это новые команды поддерживаемые metawrc - dump, stats, list, export
Команда stats выводит статистику по числу записей в WARC файле в разрезе расширений файлов или типов контента (mime)
Команда list позволяет листать записи в WARC файле передавая в качестве параметров список расширений, список типов контента или запрос к SQLite базе данных (кусок SQL запроса после WHERE).
Команда dump работает как list, но для сохранения выбранный файлов в отдельную папку. Поскольку не все файлы в WARC можно сохранять с полным путем, то файлы сохраняются каждый с уникальным идентификатором и к ним прилагается список файлов с соответствием каждого файла ссылке в WARC файле.
Команда export позволяет выгружать содержимое WARC файла в машиночитаемом виде. Она даёт возможности экспортировать заголовки из WARC файла в формате JSON lines и содержимое HTML страниц для полнотекстового индексирования, например, с помощью Opensearch, Elastic или Meilisearch.
Инструмент будет полезен всем кто изучает веб сайты, работает с архивами в формате WARC и создает их. Желающие могут воспользоваться, к примеру, архивами сайтов Мемориала [3] или архивами сайтов Роснано [4] которые мы сохраняли в @ruarxive в 2021 году.
Ошибки, идеи и предложения пишите в Issues на github [5]
Ссылки:
[1] https://github.com/datacoon/metawarc
[2] https://begtin.tech/government-piracy/
[3] https://cdn.ruarxive.org/public/webcollect2021/memorial2021/
[4] https://cdn.ruarxive.org/public/webcollect2021/rusnano2021/
[5] https://github.com/datacoon/metawarc/issues
#opensource #webarchives #digitalpreservation #opendata
GitHub
GitHub - datacoon/metawarc: metawarc: a command-line tool for metadata extraction from files from WARC (Web ARChive)
metawarc: a command-line tool for metadata extraction from files from WARC (Web ARChive) - datacoon/metawarc
Интересное мероприятие Software Source Code as documentary heritage организованное ЮНЕСКО совместно с французским некоммерческим проектом Software Heritage о сохранении исходного кода.
Там много интересных докладов, например, об организации хранения петабайтов в человеческом ДНК и о том сжатии огромных объёмов открытого кода.
Но важнее то что открытый код рассматривается как часть культурного/цифрового наследия человечества.
https://webcast.unesco.org/events/2023-02-07-software-heritage/
#opensource #opendata #software
Там много интересных докладов, например, об организации хранения петабайтов в человеческом ДНК и о том сжатии огромных объёмов открытого кода.
Но важнее то что открытый код рассматривается как часть культурного/цифрового наследия человечества.
https://webcast.unesco.org/events/2023-02-07-software-heritage/
#opensource #opendata #software
Для тех кто работает с файлами в WARC формате (большая часть сайтов в ruarxive хранятся в нём) ещё одна утилита по работе с ними. Warchaeology [1]. Утилита создана в Национальной библиотеке Норвегии и позволяет:
- конвертировать форматы ARC, WARC и Nedlib
- листать WARC файлы
- удалять дубликаты файлов
- валидировать содержание WARC файлов
- предоставлять оболочку по работе с WARC файлами
Инструмент полезный, может пригодится тем кто любит работать в командной строке. Я также напомню про библиотеку и утилиту командной строки WarcIO [2] с функциями извлечения и пересжатия содержимого WARC файлов и разработанную мной когда-то утилиту MetaWARC [3] которая тоже умеет извлекать контент из WARC файлов и ещё индексировать их в sqlite и считать статистику и даже извлекать метаданные из вложенных файлов.
Больше инструментов полезных и разных! Если Вы знаете хорошие инструменты с открытым кодом для цифровой архивации, пишите нам, будем делать их обзоры.
Ссылки:
[1] https://github.com/nlnwa/warchaeology
[2] https://github.com/webrecorder/warcio
[3] https://github.com/datacoon/metawarc
#tools #opensource #digitalpreservation #webarchives #WARC #software
- конвертировать форматы ARC, WARC и Nedlib
- листать WARC файлы
- удалять дубликаты файлов
- валидировать содержание WARC файлов
- предоставлять оболочку по работе с WARC файлами
Инструмент полезный, может пригодится тем кто любит работать в командной строке. Я также напомню про библиотеку и утилиту командной строки WarcIO [2] с функциями извлечения и пересжатия содержимого WARC файлов и разработанную мной когда-то утилиту MetaWARC [3] которая тоже умеет извлекать контент из WARC файлов и ещё индексировать их в sqlite и считать статистику и даже извлекать метаданные из вложенных файлов.
Больше инструментов полезных и разных! Если Вы знаете хорошие инструменты с открытым кодом для цифровой архивации, пишите нам, будем делать их обзоры.
Ссылки:
[1] https://github.com/nlnwa/warchaeology
[2] https://github.com/webrecorder/warcio
[3] https://github.com/datacoon/metawarc
#tools #opensource #digitalpreservation #webarchives #WARC #software
GitHub
GitHub - nlnwa/warchaeology: Command line tool for digging into WARC files
Command line tool for digging into WARC files. Contribute to nlnwa/warchaeology development by creating an account on GitHub.
Для тех кто работает с архивами сайтов в формате WARC свежий инструмент WARC-GPT [1] по исследованию содержимого WARC файлов с использованием большой языковой модели (ИИ).
С открытым кодом [2] и примерами. Для проверки можно взять их тестовый датасет, скачать из Руархива (ruarxive.org) или создать самостоятельно с помощью wget или wpull.
Ссылки:
[1] https://lil.law.harvard.edu/blog/2024/02/12/warc-gpt-an-open-source-tool-for-exploring-web-archives-with-ai/
[2] https://github.com/harvard-lil/warc-gpt
#opensource #digitalpreservation #ai #webarchives
С открытым кодом [2] и примерами. Для проверки можно взять их тестовый датасет, скачать из Руархива (ruarxive.org) или создать самостоятельно с помощью wget или wpull.
Ссылки:
[1] https://lil.law.harvard.edu/blog/2024/02/12/warc-gpt-an-open-source-tool-for-exploring-web-archives-with-ai/
[2] https://github.com/harvard-lil/warc-gpt
#opensource #digitalpreservation #ai #webarchives