Een korte tutorial om weergegevens te schrapen met geannoteerde scripts (deel 3/3)

In het vorige bericht van deze serie hebben we u kennis laten maken met de API die we hebben gekozen om gegevensschrapen uit te voeren, we hebben het belangrijkste deel van de scripts voor gegevensschrapen beschreven die een van ons (Bastien) heeft geprogrammeerd, en we hebben de link naar de GitHub-opslagplaats waar de scripts beschikbaar zijn. Als je dit nog niet hebt gedaan, raden we je aan dat bericht te lezen en de vorige omdat het u kan helpen de inhoud van deze beter te begrijpen.

In de derde en laatste post van deze serie laten we je zien hoe je de scripts gebruikt die Bastien heeft geprogrammeerd met slechts minimale programmeerkennis.

Voorwaarden

De scripts zijn geschreven in Python, een gratis en open source programmeertaal. De code zou goed moeten werken op elk apparaat (of het nu een Windows-, Mac- of Linux-systeem is). U kunt echter fouten tegenkomen bij het gebruik van de scripts op een niet-Windows-systeem (omdat ze specifiek zijn geprogrammeerd voor gebruik op een Windows-systeem). Als je de scripts gebruikt en je krijgt het niet werkend, aarzel dan niet om contact Bastien (hij helpt zelfs Mac-gebruikers). Dit zijn de drie stappen die u moet nemen voordat u de scripts gebruikt:

  1. Python installeren – Als je Python niet op je apparaat hebt staan, kun je de laatste versie downloaden van deze pagina. We raden u aan de installatie met de standaardinstellingen te doorlopen.
  2. Download de vereiste Python-modules – Sommige modules (als je bekend bent met R, modules zijn vergelijkbaar met pakketten) die niet zijn opgenomen in de standaard Python-omgeving, zijn nodig om het script uit te voeren: verzoeken, panda's en pauze. U moet deze installeren voor wat we zullen doen. De Python-documentatie geeft voldoende informatie over hoe u dit kunt doen.
  3. Download de scripts - De scripts om het webschrapen te doen, worden op het volgende gedeponeerd: GitHub-opslagplaats. Download de repository als een .zip-bestand en pak het uit waar u het wilt opslaan.
  4. Abonneer u op de Aerisweather API – Aerisweather biedt momenteel verschillende pakketten aan waarvan de prijs varieert van $ 80 tot $ 690 per maand. Je kunt een overzicht vinden van de verschillende pakketten die ze aanbieden CDL Super Session.. Om historische weergegevens te verzamelen, heeft u een pakket nodig met de "Archief-add-on" geselecteerd. Als je het geld niet hebt en je krachten wilt bundelen met andere lezers van deze blog, laat dan een reactie achter en je kunt met elkaar afstemmen.

Uw dataset voorbereiden

Je hebt een dataset nodig op basis waarvan je data gaat scrappen. U moet de dataset voorbereiden voordat u met het webschrapen begint. De manier waarop de scripts zijn geprogrammeerd, vereist dat u uw dataset transformeert van lang naar breed formaat, als dat nog niet het geval is (dat wil zeggen, een enkele deelnemer zal een enkele regel in uw dataset bezetten). Uw dataset moet ook worden opgeslagen in een .csv-indeling, met als scheidingsteken ";".

Om weergegevens voor uw dataset te verzamelen, is bepaalde informatie verplicht voor elke deelnemer:

  1. ID kaart - Dit komt overeen met de unieke identificatie van uw deelnemer. Het kan gewoon een reeks letters/numerieke waarden zijn. Bijvoorbeeld "deelnemer_1".
  2. plaats - Dit komt overeen met de breedtegraad/lengtegraadcombinatie van de locatie waarvoor u weergegevens wilt verzamelen (bijvoorbeeld de locatie waar de deelnemer uw onderzoek heeft afgerond). Elke waarde moet het volgende formaat hebben: "latitude, longitude". Voorbeeld voor Parijs: “48.856613,2.352222”. Er zijn verschillende tools online beschikbaar om de lengte- en breedtegraadcoördinaten van een locatie te schatten (bijv. https://www.latlong.net/). Als je een enorm aantal coördinaten moet ophalen (zoals bij ons het geval is), zul je waarschijnlijk een manier moeten bedenken om dit op een geautomatiseerde manier te doen. Om u een idee te geven van hoe u dit kunt doen, controleert u het volgende: GitHub repo. Het bevat een geannoteerd script (evenals voorbeeldbestanden) dat Bastien heeft geprogrammeerd om 11,000 Amerikaanse postcodes toe te wijzen aan breedte- en lengtegraadcoördinaten.
  3. datum – Dit komt overeen met de datum waarvoor u weergegevens wilt verzamelen (bijvoorbeeld de datum waarop de deelnemer uw onderzoek heeft afgerond). Voor ons script hebben we ons gebaseerd op een specifieke datum als tijd. Daarom moet elke waarde het volgende formaat hebben: “DD/MM/YYYY UU:MM”. Voorbeeld: “21/06/2020 16:20”. Belangrijk is dat de tijdzone waarin de datum wordt opgeslagen, de tijdzone moet zijn van de locatie waarvoor u weergegevens wilt verzamelen.

De gegevens verzamelen

Nadat u de bestanden hebt gedownload, moet u het bestand "aerisweather_keys.py" zoeken en bewerken met de teksteditor van uw keuze. U moet de standaardwaarde van verschillende variabelen vervangen door de waarde die overeenkomt met uw instellingen. Hier is een overzicht van de verschillende variabelen die u moet bewerken (details over het formaat dat elke variabele moet hebben, zijn gedocumenteerd in het bestand "aerisweather_keys.py"):

  • KLANT IDENTIFICATIE: Id-sleutel van uw Aerisweather-account.
  • CLIENT_SECRET: Geheime sleutel van uw Aerisweather-account.
  • DATA BESTAND: Naam van uw gegevensbestand.
  • PARTICIPANT_ID_COLUMN: In uw datafile, naam van de kolom waarin de identifier van de deelnemer is gedocumenteerd.
  • TIMESTAMP_COLUMN: In uw databestand, naam van de kolom waarin de datum staat waarvoor u weergegevens wilt verzamelen.
  • EXACT_LOCATION_COLUMN: In uw databestand, naam van de kolom waarin de breedtegraad/lengtegraad combinatie is gedocumenteerd van de locatie waarvoor u weergegevens wilt verzamelen.
  • UTC_TIMEZONE: UTC-tijdzone van de tijd die op uw computer wordt weergegeven.
  • JAAR: Jaar waarvoor u de “jaargemiddeldengegevens” wilt verzamelen (zie hieronder).
  • SUMMARY_FOI: Weervariabelen die van belang zijn voor de "jaargemiddeldengegevens" (zie hieronder).
  • ARCHIVE_FOI: Weervariabelen die van belang zijn voor de "gespecificeerde datumgegevens" (zie hieronder).

Zodra u de waarden hebt ingesteld die overeenkomen met uw instellingen, bent u klaar om uw weergegevens te verzamelen. 

U kunt nu het script "aerisweather_run.py" uitvoeren. U wordt gevraagd om het type gegevens te kiezen dat u wilt verzamelen:

  • Opgegeven datumgegevens
    • Het script verzamelt de weergegevens van de dag die zijn gedocumenteerd in de kolom 'datum' van uw dataset ('op tijd'-timing), voor elke deelnemer in uw dataset. Het verzamelt ook weergegevens van de dag voorafgaand aan deze dag (“dag-1” timing), en de tweede dag voorafgaand aan deze dag (“dag-2” timing). Gegevens worden opgeslagen in een map "results" (1 bestand per timing), met de bestandsnaamindeling "specified_date_TIMING_DEELNEMER.json”. Bijvoorbeeld: “gespecificeerde_datum_op tijd_deelnemer_1.json”
  • Gegevens jaargemiddelden
    • Het script verzamelt de weergegevens van de 12 maanden van het jaar dat u hebt opgegeven in het bestand "aerisweather_keys.py", voor elke unieke locatie in uw dataset. Gegevens worden opgeslagen in een map "resultaten" (1 bestand per maand), met de bestandsnaamindeling "gemiddelden_JAAR_LIGGING_EERSTE DAG VAN DE MAAND_LAATSTE DAG VAN DE MAAND.json”. Bijvoorbeeld: “gemiddelden_2019_48.856613,2.352222_2019-01-01_2019-01-31.json”

Nadat u het type gegevens hebt gekozen dat u wilt verzamelen, is de laatste stap het kiezen van het aantal threads (tussen 1 en 10) dat het script tegelijkertijd zal uitvoeren. Dit komt overeen met het aantal toegangen tot Aerisweather dat tegelijkertijd zal worden gemaakt. Tenzij je wat aan het testen bent, raden we je aan om met 10 te gaan, omdat dit zal resulteren in het sneller verzamelen van de weergegevens.

De gegevens samenvoegen

Als u de gegevens van Aerisweather met succes hebt verzameld, zou u een map "resultaten" moeten hebben gevuld met .json-bestanden. Het analyseren van de gegevens kan een uitdaging zijn als u de gegevens niet verwerkt.

Met het script "aerisweather_statscomputing.py" kunt u de gegevens verwerken en samenvoegen in één enkel .csv-bestand (waar het scheidingsteken ";" is). Van bijzonder belang is dat u dit script alleen kunt uitvoeren als u de standaardvariabele keuzes in het bestand "aerisweather_keys.py" behoudt (althans voor nu).

Wanneer u het script uitvoert, wordt u gevraagd het bericht te zien dat u kreeg toen u het "aerisweather_run.py"-script startte (dwz u moet kiezen welk type gegevens u wilt samenvoegen).

Hieronder vindt u ook het codeboek van het resulterende .csv-bestand, voor elk type gegevens:

Slotopmerkingen

Dit was het laatste bericht van deze serie over gegevensschrapen. 

In het laatste bericht van deze serie hebben we je de overige richtlijnen gegeven over hoe je de scripts die Bastien heeft geprogrammeerd kunt gebruiken om je eigen weergegevens op Aerisweather te verzamelen.

Tot slot, als onze berichten over het schrapen van gegevens enige interesse in u voor die vaardigheid hebben gewekt, kunnen we u alleen maar aanmoedigen om erin te springen. Weten hoe u gegevens kunt schrapen, is zeker een waardevolle vaardigheid in een tijd waarin de hoeveelheid online beschikbare gegevens exponentieel toeneemt. Zolang u zich op uw gemak voelt met een programmeertaal waarmee u webverzoeken kunt uitvoeren en zolang u de basisprincipes van gegevensschrapen begrijpt, heeft u geen specifieke training nodig om uw eerste gegevensschrapingscripts te coderen.

Dit bericht is geschreven door Bastien Paris en Hans IJzerman

Laat een reactie achter

Deze site gebruikt Akismet om spam te verminderen. Ontdek hoe uw reactiegegevens worden verwerkt.

%d bloggers als volgt uit: