IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Avvolgi la funzione read_lines() in una chiamata a possibly() 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’argomento collapse impostato 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, ___)
Modifica ed esegui il codice