Une version possibly() de read_lines()
Nous travaillons toujours avec la série d’URL qui vous ont été fournies pour le scraping. Nous testons plusieurs méthodes pour identifier les URL inaccessibles. Pourquoi faire ? Parce que la première étape du web scraping consiste à vérifier si l’URL est accessible ou non. C’est à cela que servira le code que nous écrivons.
Dans l’exercice précédent, nous avons encapsulé la fonction read_lines() dans safely(). Dans cet exercice, nous allons utiliser la fonction possibly().
En terminologie web, un code 404 indique qu’une page n’est pas disponible. Ce nombre sera utilisé comme argument otherwise.
De plus, comme read_lines() renvoie un vecteur de longueur n lors de la lecture d’une page, nous allons le concaténer avec la fonction paste().
Le vecteur urls vous est fourni.
Cet exercice fait partie du cours
<cours>Programmation fonctionnelle intermédiaire avec purrr</cours>Instructions de l’exercice
Enveloppez la fonction
read_lines()dans un appel àpossibly()qui renverrait sinon 404.Appliquez cette nouvelle fonction à la liste d’URL avec
map, puis enchaînez directement versset_names().Transformez chaque élément de cette liste en une chaîne de longueur 1 en utilisant la fonction
paste()avec l’argumentcollapsefixé à" ".Ne conservez que les éléments égaux à 404.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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, ___)