Eine possibly()-Variante von read_lines()
Wir arbeiten weiterhin mit der Reihe von URLs, die du zum Scrapen bekommen hast. Wir probieren mehrere Methoden aus, um URLs zu identifizieren, die nicht zugänglich sind. Warum? Weil der erste Schritt beim Web Scraping ist zu prüfen, ob du auf die URL zugreifen kannst oder nicht. Genau dafür ist der Code gedacht, den wir hier schreiben.
In der vorherigen Übung haben wir die Funktion read_lines() in safely() verpackt. In dieser Übung verwenden wir die Funktion possibly().
In der Web-Terminologie bedeutet 404, dass eine Webseite nicht verfügbar ist. Diese Zahl verwenden wir als otherwise-Argument.
Außerdem gibt read_lines() beim Einlesen einer Webseite einen Vektor der Länge n zurück. Wir fassen ihn daher mit der Funktion paste() zusammen.
Der Vektor urls wurde für dich bereitgestellt.
Diese Übung ist Teil des Kurses
<Kurs>Fortgeschrittene funktionale Programmierung mit purrr</Kurs>Übungsanweisungen
Wickle die Funktion
read_lines()in einenpossibly()-Aufruf, der andernfalls 404 zurückgibt.Mappe diese neu erstellte Funktion auf die URL-Liste und leite sie direkt per Pipe an
set_names()weiter.Wandle jedes Element dieser Liste mit der Funktion
paste()in einen Zeichenstring der Länge 1 um, wobei das Argumentcollapseauf" "gesetzt ist.Behalte nur die Elemente, die gleich 404 sind.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# Create a possibly() version of read_lines()
possible_read <- ___(___, otherwise = ___)
# Map this function on urls, pipe it into set_names()
res <- map(urls, ___) %>% ___(urls)
# Paste each element of the list
res_pasted <- ___(res, ___, collapse = ___)
# Keep only the elements which are equal to 404
___(res_pasted, ___)