CommencerCommencez gratuitement

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>
Voir le 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 vers set_names().

  • Transformez chaque élément de cette liste en une chaîne de longueur 1 en utilisant la fonction paste() avec l’argument collapse fixé à " ".

  • 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, ___)
Modifier et exécuter le code