Ga verder naar de inhoud

Websites archiveren met Heritrix

Deze handleiding beschrijft de installatie en het gebruik van webcrawler Heritrix voor het periodiek crawlen van websites.

De handleiding werd geschreven tijdens een edit-a-thon van het Praktijknetwerk Sociale Media Archiveren in 2025. Heretrix is geen effectieve crawler waarmee je sociale media kan archiveren, maar is wel een stabiele tool voor periodieke websitearchivering.

Auteurs

  • Jeroen Fernandez-Alonso (Asmab-ISG)
  • Katrien Weyns (Vlaams Architectuurinstituut)

Installatie van Heritrix

  • Download de laatste versie van Heritrix via de GitHub-pagina van Internet Archive
  • Unzip de gedownloade map via de command line, bijvoorbeeld: tar -xzf heritrix-3.4.0-20190828.200101-25-dist.tar.gz
  • Configureer Heritrix:
    • Vind de locatie van Java, en geef dit in. Bijvoorbeeld: export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
    • Zet de omgevingsvariable HERITRIX_HOME. Bijvoorbeeld: export HERITRIX_HOME=/home/user/heritrix3.4.0
    • We geven het programma nu de mogelijkheid om zichzelf uit te voeren: chmod u+x $HERITRIX_HOME/bin/heritrix
    • Het is aangeraden om extra geheugen toe te wijzen: export JAVA_OPTS=-Xmx1024M
  • Start Heritrix: $HERITRIX_HOME/bin/heritrix -a admin:admin

Voorbeeld om bovenstaande configuratie in te stellen

  • Open https://localhost:8443/

Opmerking: als je IT-ondersteuner Heritrix kan installeren op een server, heeft dat de voorkeur. Zo kunnen zij mee instaan voor het technisch beheer van de applicatie. De toegang tot Heritrix (url en logingegevens) zal in dat geval door hen voorzien worden.

Crawlen met Heritrix

  • Ga naar de locatie waar je Heritrix draait door de url in te geven in je webbrowser. Dit is bv. localhost:8443/engine of de url die je ontving van je IT-ondersteuner in geval van een serverinstallatie.

  • Klik op “Advanced” en klik daarna op  “Proceed to localhost (unsafe)” En login met de gebruikersnaam en het wachtwoord dat je instelde bij installatie (bv. in ons voorbeeld admin).
  • In het scherm dat je ziet, start je een nieuwe crawl via de Job Directories > Create new job. Vul de naam van de job in. Dit kan bijvoorbeeld de titel van de website of de naam van de archiefvormer zijn of de unieke identifier die de gearchiveerde website krijgt binnen jouw collectie. Aan de hand van deze jobnaam vind je de job later terug en wordt het eindresultaat (het WARC-bestand) benoemd. Klik op "Create".

  • De job met de gekozen naam verschijnt eronder. Klik op de naam om de crawl te launchen en verder te configureren.
  • Klik op "Configuration" bovenaan om de url en de zogenaamde crawler beans aan te passen.

  • Door de crawler beans te wijzigen, configureer je wat je precies zal crawlen van de website. Enkele vaste elementen pas je minstens aan:
    • Lijnen 40 en 57 moeten altijd ingevuld zijn.
    • Vul in lijn 40 (metadata.OperatorContactUrl) de contactinformatie in van de organisatie die archiveert (bv. https://kadoc.kuleuven.be/). Website-eigenaars kunnen dit gebruiken om te zien wie crawlt, en uit beleefdheid moet dit ingevuld zijn, anders werkt Heritrix niet.
    • Vul in lijn 57 de url in die je wilt archiveren (bv. https://www.yesilcamii.be/). Vervang dus de tekst http://exemple.exemple/exemple.
    • Klik onderaan op “Save changes”.

  • De set-up die je net instelde is een standaardconfiguratie van Heritrix die traag kan werken. Het is aangeraden om de instellingen aan te passen voor onderstaande lijnen. Je hoeft dit bij toekomstige crawls niet altijd opnieuw in te stellen, je kan de aangepaste crawlersbeans.cxml hiervoor gebruiken en gewoon de URL steeds aanpassen.
    • Lijn 69 (RobotsPolicyName​):
    • Lijn 392 (maxToeThreads): verhoog dit best naar 50-100, in de documentatie van Heritrix staat dat hoger dan 100 enkel aangeraden is bij websites die veel traffic aankunnen.
    • Lijn 411 en 412 (Frontier): De Frontier beslist welke URI’s en wanneer ze gecrawld worden, in welke volgorde, hoevaak proberen, enzovoort. Als Heritrix geen response krijgt van de webserver dan wordt de URI in kwestie eventjes in de ‘wachtruimte’ geplaatst. De URI blijft daar standaard 15 minuten zitten vooraleer Heritrix nog eens probeert om contact op te nemen met de server, en dit doet Heritrix standaard 30 keer vooraleer het programma beslist dat de URI niet zal kunnen gearchiveerd worden. Maar 30 keer 15 minuten is 7uur30, dus dan kan je echt wel lang bezig zijn met een crawl, zeker omdat er ook een limiet is van het aantal URI’s die in de queue, de wachtrij kunnen staan. Dus als ze allemaal vastzitten, kan de crawl dagenlang duren. Wijzig daarom de gegevens naa
      • RetryDelaySeconds : value= "60"
      • MaxRetries : value= "5"
  • Lijn (disposition): deze Disposition regelt de wachttijd na het harvesten van 1 URI, maar staat standaard iets te hoog. Wijzig de gegevens naar:
    • DelayFactor: value= "1"
    • minDelayMS: value= "1000"
    • respectCrawlDelayUpToSeconds: value= "5"
    • maxDelayMS: value= "5000"
  • Klik onderaan op “Save changes” en klik op het pijltje terug in je browser om je job te starten.

  • Een crawl starten (Job launchen) doe je door fases te doorlopen: Build > launch > checkpoint > unpause > teardown.

  • Je kan de status van de crawl zien als je op F5 drukt of op "pause/unpause". Als je crawl loopt wordt dat aangeduid als 'running', de crawl afgerond is, dan staat er "finished".
  • Wanneer er "finished" staat kan je de crawl afronden door "teardown" te kiezen.
  • Afhankelijk van de grootte en complexiteit van de website kan een crawl kort tot heel lang (enkele dagen) duren. Je kan meerdere jobs tegelijk opstarten en laten lopen. Klik op "engine" om een overzicht te krijgen van al je jobs.

Resultaat

De gecrawlde website wordt opgeslagen als WARC-bestand in de map die je instelde tijdens de installatie. De output kan je openen en evalueren aan de hand van de handleiding voor het raadplegen van gearchiveerde websites en sociale media.