Wil jij elke ochtend tweets over een bepaald onderwerp scrapen? Of wil je elke ochtend alle Instagram-posts van een account binnenhalen? Dan is deze blog iets voor jou. In deze blog hebben we het namelijk over “automating OSINT“: het automatiseren van zoekslagen in een onderzoek.
De casus: het dagelijks binnenhalen van tweets over een bepaald onderwerp
Stel dat je geïnteresseerd bent om elke dag tweets over boerenprotesten binnen te halen. Dan kun je dat handmatig doen via de zoekbalk van Twitter zoals hiernaast, maar dat schiet natuurlijk niet erg op. Zeker niet wanneer er veel berichten over het onderwerp dat jij onderzoekt geplaatst worden. Tijd voor een andere, geautomatiseerde oplossing dus.
Een geautomatiseerde oplossing: een webscraper
Naast dat je op sommige websites en sociale media een Application Programming Interface (API) kunt gebruiken om data te vergaren, kun je ook gebruik maken van zogeheten webscrapers. Met behulp van een webscraper kun je selectief bepaalde gegevens uit een webpagina extraheren om deze vervolgens gestructureerd op te slaan voor nadere verwerking en analyse. Er bestaan vele (betaalde) software-pakketten en browser-extensies die webscraping toepassen, echter gebruiken wij het liefst open source tools. De reden hiervoor is dat de broncode van deze tools openbaar is, waarmee wij kunnen inschatten of het gebruik daarvan afbreukrisico’s in ons onderzoek oplevert.
Twee interessante tools om berichten op Twitter te scrapen zijn Twint en snscrape. Na installatie van Python, en na installatie van de tool snscrape, kun je bijvoorbeeld alle berichten over #boerenprotest binnenhalen met het volgende commando: snscrape –retry 3 –jsonl –progress twitter-hashtag boerenprotest > boerenprotest_hashtag.csv
Het resultaat ziet eruit zoals hieronder weergegeven. Uiteraard moeten de resultaten nog opgeschoond worden om deze verder te kunnen verwerken en analyseren, maar daar gaat deze blog niet over. Waar deze blog wel over gaat is over het automatiseren van het bovenstaande proces. Met andere woorden: het automatisch uitvoeren van het bovenstaande script.
De webscraper dagelijks uitvoeren (Windows)
Om het bovenstaande script dagelijks uit te voeren, kun je in een Windows-omgeving de taakplanner gebruiken en in een Mac OS-omgeving de Automator. Om in Windows dagelijks een script uit te voeren, zul je eerst een .cmd-bestand moeten aanmaken. Een .cmd-bestand is een bestand met daarin een script dat uitgevoerd kan worden om specifieke taken op de computer uit te voeren.
Een .cmd-bestand aanmaken
Om een .cmd-bestand aan te maken, kun je een kladblok openen en het bestand opslaan als .cmd. Je doet dat door bij het bestand te kiezen voor “Opslaan als…” en door vervolgens het bestand een naam te geven eindigend op “.cmd”. Het is daarbij belangrijk dat je de optie “Alle bestanden” aan hebt gevinkt.
Het cmd-bestand vullen met een script
Omdat het .cmd-bestand nu nog leeg is, zul je deze moeten vullen met een script. Stel dat we het eerdere script om de #boerenprotest te scrapen zouden willen uitvoeren, dan zou daarvoor het script als volgt kunnen zijn:
Het cmd-bestand in de taakplanner inplannen (1/3)
Om een taak aan te maken, open je via menu start de “Taakplanner”-applicatie. Als de taakplanner is opgestart, maak je een nieuwe taak aan en vul je onder het tabblad “Algemeen” een naam in voor jouw taak (pijl 1). Wij hebben onze taak “Testscript” genoemd. Klik vervolgens op “OK” (pijl 2) en ga verder naar stap 2.
Het cmd-bestand in de taakplanner inplannen (2/3)
Klik op het tabblad “Trigger” (pijl 1) op “Nieuw” (pijl 2) om een nieuwe trigger voor jouw taak aan te maken. Selecteer vervolgens de optie “Dagelijks” (pijl 3) en stel een tijdstip in waarop jouw script dagelijks uitgevoerd moet worden (pijl 4). Klik vervolgens op “OK” (pijl 5) om verder te gaan.
Het cmd-bestand in de taakplanner inplannen (3/3)
Klik binnen het tabblad “Acties” (pijl 1) op “Nieuw” (pijl 2) om een nieuwe actie voor jouw taak aan te maken. Zoek via “Bladeren” (pijl 3) naar het script dat je hebt aangemaakt en klik vervolgens op “OK” (pijl 4). Je hebt nu alles ingesteld en jouw taak zal dagelijks uitgevoerd worden op het tijdstip dat je zelf hebt gekozen.
En hoe nu verder?
Met bovenstaande taak heb je ervoor gezorgd dat er elke ochtend op een bepaald tijdstip een zelf gemaakt script wordt uitgevoerd. Nu je weet hoe je een script automatisch kunt uitvoeren, kun je meer geavanceerde scripts en taken gaan aanmaken. Denk aan scripts die automatisch gegevens binnenhalen, bestanden bijwerken, enzovoorts.
Kan dit ook op een Mac?
Jazeker. Je zult daar eerst een uitvoerbaar bestand moeten aanmaken (gebruik “chmod +x“) en je kunt vervolgens via de Automator de Kalender openen, Finder-onderdelen ophalen en Finder-onderdelen uitvoeren. Via de agenda plan je dus in dat scripts periodiek worden uitgevoerd. Neem voor meer informatie contact met ons op.
Let op: denk aan het juridisch kader!
Hou er rekening mee dat je middels het automatiseren van zoekslagen mogelijk grotere hoeveelheden gegevens binnenhaalt. Of dat juridisch gezien is toegestaan, hangt volledig af van de context van jouw onderzoek. Raadpleeg dus te allen tijden bijvoorbeeld een jurist of Officier van Justitie vóórdat je aan de slag gaat!
Meer weten?
Wil je meer weten over het automatiseren van zoekslagen? Dan is onze OSINT-training III (Expert) wellicht iets voor jou. In deze training gaan we onder andere in op het gebruik van RSS Feeds, conditionele logica, automatische vertalingen, API’s, webscrapers, open source tooling en nog veel meer!