ดึง status code ด้วย GET()
สำหรับแบบฝึกหัดสุดท้ายนี้ เราจะเปลี่ยนจากฟังก์ชัน read_lines() มาใช้ฟังก์ชัน GET() จากไลบรารี httr แทน
เราจะสร้างเวอร์ชัน possibly() ของ GET() ก่อน เพื่อทดสอบว่า URL บางรายการใน list ของคุณคืนค่าเป็น error หรือไม่ หากเข้าถึง URL ได้ จะได้รับ connection object กลับมา ซึ่งภายในนั้นจะมีองค์ประกอบชื่อ "status_code"
ไม่ต้องกังวลเรื่องผลลัพธ์มากนัก ขอให้จำไว้แค่ว่า หาก GET() คืนค่าเป็น error นั่นหมายความว่า URL นั้นไม่สามารถเข้าถึงได้ ส่วน status code ที่เราจะดึงมานั้นอาจฟังดูเหมือนศัพท์เฉพาะทางเว็บ แต่เราจะอธิบายอย่างละเอียดในบทถัดไป ตอนนี้ขอให้จำไว้แค่ว่า 200 หมายถึงทุกอย่างเป็นไปตามที่คาดไว้
เวกเตอร์ urls พร้อมใช้งานใน workspace แล้ว และได้โหลด purrr กับ httr ไว้ให้เรียบร้อย
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Functional Programming ระดับกลางด้วย purrr
คำแนะนำการฝึกหัด
สร้างเวอร์ชันของ
GET()ที่จะคืนค่าNULLเมื่อเกิด errorกำหนดชื่อให้กับผลลัพธ์
ลบค่า
NULLออกดึงค่า
"status_code"ของแต่ละ element
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
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)