Publicatie:Facebook groepen archiveren
In het kader van het project Best practices voor de archivering van sociale media in Vlaanderen en Brussel werden verschillende tools getest om verschillende sociale media platformen te archiveren.
Deze publicatie beschrijft hoe Facebook groepen te archiveren met snscrape en wget. Tot op heden is snscrape niet meer bruikbaar om Facebook gerelateerde inhoud te archiveren. [Issue op GitHub #208]
Titel | Facebook groepen archiveren (Voorkeurstitel) |
Locatie | |
Uitgever | |
Jaar van uitgave | 2020 |
Rechten | CC-BY-SA |
Persistent ID |
De beschreven methode werkt enkel bij publieke Facebookgroepen.
Op 4 november 2020 stelden we vast dat onderstaande methode via snscrape niet meer werkt. We vermoeden dat Facebook iets gewijzigd heeft aan zijn achterliggende code.
Gebruikte Tools
Voorbereiding
Navigeer naar de Facebook groep en kopieer de naam van de groep zoals die in de adresbalk staat.
Dit kan een series van cijfers zijn of een relevante naam maar staat altijd na het /groups/
gedeelte van de URL.
We hebben de exacte naam of ID van de Facebook groep nodig in de volgende stap.
Installeren snscrape
Snscrape vereist Python 3.6 of hoger.
Python installeren op
De installatie gebeurt via de terminal en pip (de python package manager).
Kopier en plak het volgende commando in de [terminal]. In het geval van windows, gebruik powershell of Command Prompt.
pip3 install snscrape
Of installeer de dev versie:
pip3 install git+https://github.com/JustAnotherArchivist/snscrape.git
URL scrapen met snscrape
Snscrape wordt gebruikt om aan de hand van het facebook groep ID een lijst van URLs te scrapen naar een tekstbestand.
snscrape facebook-group talkgent >/home/jouwgebruikersnaam/snscrape/TALK-Gent.txt
Snscrape gaat starten met het scrapen van URLS, het >/home/jouwgebruikersnaam/snscrape/TALK-Gent.txt
gedeelte gaat een tekstbestand maken in de map /home/jouwgebruikersnaam/snscrape/
met TALK-Gent.txt als bestandsnaam.
Ophalen van content
Voor het volgende deel gebruiken wget om de content achter de URLS op te halen.
Commando:
wget -i \
/home/jouwgebruikersnaam/snscrape/talk-gent.txt \
--warc-file=talk-gent \
--warc-cdx \
--page-requisites \
--html-extension \
--convert-links \
--execute robots=off \
--user-agent=Mozilla \
-
--random-wait \
--wait=2 \
Overlopen van de opties in het wget commando:
-i
of--input
: Lees URL's uit een lokaal of extern bestand, vereist een adres naar het gekozen bestand.--warc-file=talk-gent
: Creëer een .warc file om later uit te openen in webrecorder, met naam talk-gent--warc-cdx
: Instrueert wget om een bijpassend index bestand te maken voor het talk-gent.warc bestand. Het CDX-bestand bevat een lijst met de records en hun locaties in de WARC-bestanden--page-requisites
: Deze optie zorgt ervoor dat Wget alle bestanden downloadt die nodig zijn om een HTML pagina correct weer te geven. Dit omvat zaken als inline afbeeldingen, geluiden en stijlbladen waarnaar wordt verwezen.--html-extension
: Deze optie voegt de .html extensie toe waar nodig.--convert-links
: Nadat het downloaden is voltooid, converteert wget de links in het document om ze geschikt te maken voor lokaal gebruik. Dit heeft niet alleen invloed op de zichtbare hyperlinks, maar op elk deel van het document waarnaar wordt gelinkt, externe inhoud, zoals ingesloten afbeeldingen, links naar style sheets, hyperlinks naar niet-HTML-inhoud, enzovoort.--execute robots=off
: Deze optie instrueert wget de richtlijnen van de robots.txt op de website te negeren. Wget volgt standaard strikt de robots.txt-richtlijnen van een website. In bepaalde situaties kan dit ertoe leiden dat Wget helemaal niets download, wanneer het robots.txt-bestand Wget bijvoorbeeld geen toegang geeft tot de site.--user-agent=Mozilla
: Zorgt er voor dat wget zich gaat voor doen als een Mozilla web-browser. Sommige websites weren standaard verzoeken afkomstig van de wget tool.--random-wait
: Wacht een willekeurig aantal seconden, tussen de 5s en 10s, voor het volgende verzoek naar de website.--wait=2
: Wacht een vast aantal seconden tussen verzoeken naar de website. De laatste twee opties zijn er om te vermijden de server van de website niet overbelast wordt door wget.
Troubleshooting
- Verwijderen van snscrape
pip3 uninstall snscrape
- Bij het testen met het commando
snscrape --help
werd duidelijk dat er problemen waren met de standaard versie van snscrape.
Oplossing: Installeer de dev versie van snscrape. pip3 install git+https://github.com/JustAnotherArchivist/snscrape.git
- Eind maart 2021 werd vastgesteld dat Facebook snscrape blokkeert (issue #208). Tot zolang de developers achter snscrape dit niet hersteld hebben, kan deze handleiding niet gebruikt worden voor Facebook. Je kan wel proberen Facebook te archiveren met enkel Browertrix. Bekijk hiervoor de handleiding Sociale media