เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

ดึง 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)
แก้ไขและรันโค้ด