Aan de slagGa gratis aan de slag

Statuscodes ophalen met GET()

Voor deze laatste oefening schakelen we over van de functie read_lines() naar de functie GET() uit httr.

We maken eerst een possibly()-variant van GET() om te testen of sommige van de URL's die je hebt een fout opleveren. Als je de URL kunt benaderen, wordt er een connectieobject teruggegeven. Daarin vind je een element "status_code".

Focus je niet op de resultaten; onthoud gewoon dat als een GET()-functie een fout teruggeeft, dat komt doordat de URL niet beschikbaar is. Het statuscodenummer dat we teruggeven kan wat aanvoelen als webjargon, maar we gaan er in het volgende hoofdstuk dieper op in. Onthoud voor nu dat 200 betekent dat alles volgens verwachting is verlopen.

De vector urls is beschikbaar in je werkruimte; purrr en httr zijn voor je geladen.

Deze oefening maakt deel uit van de cursus

Gevorderd functioneel programmeren met purrr

Cursus bekijken

Oefeninstructies

  • Maak een versie van GET() die NULL teruggeeft in geval van een fout.

  • Stel de namen van de resultaten in.

  • Verwijder de NULL.

  • Haal de "status_code" van elk element op.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

url_tester <- function(url_list){
  url_list %>%
    # Map a version of GET() that would otherwise return NULL 
    map( ___(GET, ___) ) %>%
    # Set the names of the result
    ___( url_list ) %>%
    # Remove the NULL
    ___() %>%
    # Extract all the "status_code" elements
    map(___)
}

# Try this function on the urls object
___(urls)
Code bewerken en uitvoeren