Una versione possibly() di read_lines()
Stiamo ancora lavorando con la serie di URL che ti è stata fornita per lo scraping. Stiamo provando vari metodi per identificare gli URL a cui non si può accedere. Perché? Perché il primo passo dello scraping web è verificare se puoi accedere all’URL oppure no. È a questo che servirà il codice che stiamo scrivendo.
Nell’esercizio precedente, abbiamo incapsulato la funzione read_lines() dentro una safely(). In questo esercizio useremo la funzione possibly().
Nel gergo del web, un 404 indica che una pagina non è disponibile. Questo numero verrà usato come argomento otherwise.
Inoltre, dato che read_lines() restituisce un vettore di lunghezza n quando legge una pagina web, useremo paste() per collassare e unire queste righe.
Il vettore urls è già fornito per te.
Questo esercizio fa parte del corso
Programmazione funzionale intermedia con purrr
Istruzioni dell'esercizio
Avvolgi la funzione
read_lines()in una chiamata apossibly()che, in caso contrario, restituisca 404.Applica questa nuova funzione all’elenco di URL con map e passala direttamente a
set_names()Trasforma ogni elemento di questo elenco in una stringa di lunghezza uno usando la funzione
paste(), con l’argomentocollapseimpostato a" ".Tieni solo gli elementi uguali a 404.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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, ___)