JavaScript i archiwa WWW

Dużym wyzwaniem związanym z archiwizacją współczesnych stron WWW jest JavaScript. We współczesnym Webie popularne są strony wykorzystujące ten język do wzbogacania interakcji z użytkownikiem oraz dynamicznego ładowania treści strony do okna przeglądarki. Taka interaktywna zawartość bywa bardzo trudna do archiwizowania przez standardowe narzędzia do crawlingu.

O ile samo zapisanie obrazu strony nie jest już bardzo dużym wyzwaniem, to problem dotyczy wszystkich jej widoków. Zawartość generowana przez JavaScript dynamicznie się zmienia i może to dotyczyć zarówno drobnych kwestii estetycznych, jak i merytorycznej zawartości strony. Tymczasem w kompletnym archiwum powinny znaleźć się wszystkie widoki danej strony.

Problem ten w jakiś sposób związany jest także z historią archiwizacji Internetu. Gdy w połowie lat dziewięćdziesiątych tworzono podwaliny koncepcji archiwizacji Webu, prawie na żadnej ze stron nie pojawiał się jeszcze tag <script>, w którym w języku HTML zamieszcza się zawartość pisaną w JavaScript. Niecałą dekadę później, około 2010 roku, tag <script> umieszczony był w 95 proc. nowotworzonych stron. Obecnie wiele stron pisanych jest w taki sposób, że bez uruchamiania skryptów w języku JavaScript nie da się z nich korzystać.

W jaki sposób archiwiści radzą sobie z tym wyzwaniem? Każda z organizacji proponuje własne, mniej lub bardziej skuteczne, rozwiązania. W British Library testowano dwa modele:

  • Podczas crawlingu standardowo pobierane są adresy URL. Takie adresy muszą zostać następnie dodatkowo przeanalizowane, dzięki czemu możliwe jest wyodrębnienie z nich informacji o ukrytej (i odtwarzanej za pomocą JavaScript) zawartości strony. Jest to to skuteczna metoda, jednak generująca wysokie koszty i znacząco wydłużająca cały proces archiwizacyjny.
  • Podczas każdego procesu archiwizacyjnego wykonywane są także zapisy obrazów stron internetowych – jest to działanie wykonywane właściwie przy okazji tworzenia kolekcji, pozwala jednak na uchwycenie wyglądu strony w danym momencie i, zdaniem archiwistów z British Library, z czasem może pozwolić na stworzenie dużej bazy charakteryzującej się sporą kompletnością zasobów.

O ile żadne z tych rozwiązań nie jest idealne, to w ciekawy sposób ilustrują one najważniejsze trudności związane z archiwizacją stron pisanych w języku JavaScript. Od razu zwraca też uwagę fakt, że żadne z rozwiązań nie umożliwia automatycznej archiwizacji całego Internetu (czy chociażby całej, wybranej domeny). Podkreśla to rolę archiwistów, jako kuratorów dokonujących świadomych decyzji dotyczących kształtu kolekcji oraz wagę odpowiedniego zaplanowania całego procesu archiwizacyjnego.

Alternatywą wobec wskazanych wyżej rozwiązań może być korzystanie z oprogramowania pobierającego strony, które jest w stanie emulować przeglądarkę – w takim przypadku strona WWW generuje się prawidłowo i wygenerowaną jej postać można następnie skopiować i zabezpieczyć.

Jackson A., Web Archiving in the JavaScript Age, UK Web Archive blog, 2014: https://blogs.bl.uk/webarchive/2014/08/web-archiving-in-the-javascript-age.html

Treść dostępna na licencji Creative Commons Uznanie autorstwa-Na tych samych warunkach 4.0 Blog naukowy, publikacje i materiały edukacyjne pracowni w 2018 roku powstały w ramach projektu Upowszechnianie wiedzy o archiwizacji Webu i metodach korzystania z historycznych zasobów WWW w instytucjach publicznych i sektorze NGO, prowadzonego przez Stowarzyszenie EBIB i finansowanego przez MNISW w programie Działalność Upowszechniająca Naukę (DUN).