用 GET() 擷取狀態碼
在最後這個練習中,我們會從 read_lines() 換成 httr 的 GET() 函式。
我們會先建立 GET() 的 possibly() 版本,用來測試你拿到的部分 URL 是否會回傳錯誤。若能成功存取該 URL,會回傳一個連線物件,其中包含一個 "status_code" 元素。
先別太在意結果;只要記住,如果 GET() 回傳錯誤,就代表該 URL 無法使用。我們回傳的狀態碼看起來像是網頁術語,不過下一章會更深入說明。現在先記得,200 代表一切如預期。
工作空間中已提供 urls 向量,並且已為你載入 purrr 與 httr。
本練習屬於課程
使用 purrr 的 R 語言中級函式程式設計
練習說明
建立一個在發生錯誤時會回傳
NULL的GET()版本。設定結果的名稱。
移除
NULL。擷取每個元素的
"status_code"。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
url_tester <- function(url_list){
url_list %>%
# Map a version of GET() that would otherwise return NULL
map( ___(GET, ___) ) %>%
# Set the names of the result
___( url_list ) %>%
# Remove the NULL
___() %>%
# Extract all the "status_code" elements
map(___)
}
# Try this function on the urls object
___(urls)