2017-08-02 5 views
0

J'ai un df de ids x urls unique.Erreurs dans le test de code d'état http Batch en utilisant pour boucle dans r

library (httr) 

for (i in (1:nrow(df))) { 
    resp <- httr::GET(df$url[i]) 
    httpcode[i] <- status_code(resp) 
    httpstatus[i] <- http_status(resp)$reason 
} 

Je veux (a) trouver le status_code pour chaque URL, (b) trouver le http_status pour chaque URL, et (c) les recracher dans de nouvelles colonnes dans le même df. Problèmes: 1. Dans le code ci-dessous, lorsque je remplace i par un numéro d'index réel (par exemple i = 1), le code fonctionne. Quand je l'ai mis dans une boucle, il me donne l'erreur suivante:

Error in curl::curl_fetch_memory(url, handle = handle) : 
    Couldn't resolve host name 
  1. Comment puis-je faire httpcode et httpstatus convertir des objets dans de nouvelles colonnes dans le même df? Merci
+0

Oh merci beaucoup, cela a résolu le premier problème. (mais j'ai également dû supprimer l'index i de httpcode [i] et httpstatus [i]. Toute idée de comment je peux retourner les résultats de l'URL respective dans deux nouvelles colonnes dans le même df? – Susie

Répondre

0
out_df <- data.frame() 
for (i in df$url) { 
    print(i) 
    resp <- httr::GET(i) 
    httpcode <- status_code(resp) 
    httpstatus <- http_status(resp)$reason 
    row <- c(i, httpcode, httpstatus) 
    out_df <- rbind(out_df, row) 
} 

df <- merge(df, out_df, by = 'url', all.x = TRUE) 
+0

print (i) n'est pas nécessaire – AidanGawronski

+0

Merci Aidan J'ai ajouté une image du résultat en réponse ci-dessus, et maintenant j'ai trouvé que j'ai des NA à cause de cette erreur. tmp * ', ri, value =" www. [nom du site caché] .com "): niveau de facteur invalide, NA généré --- Une idée pour résoudre ce problème? – Susie

+0

df $ url <- as.character (df $ url – AidanGawronski