Bắt đầu ngayBắt đầu miễn phí

Trích xuất mã trạng thái với GET()

Ở bài tập cuối cùng này, chúng ta sẽ chuyển từ hàm read_lines() sang hàm GET() của httr.

Trước tiên, bạn sẽ tạo một phiên bản GET() bọc bởi possibly() để kiểm tra xem một số URL bạn có liệu có trả về lỗi hay không. Nếu truy cập được URL, bạn sẽ nhận về một đối tượng kết nối. Bên trong đó có phần tử "status_code".

Đừng quá tập trung vào kết quả; chỉ cần nhớ rằng nếu GET() trả về lỗi thì nghĩa là URL không khả dụng. Con số mã trạng thái mà chúng ta trả về có vẻ hơi "biệt ngữ web", nhưng chúng ta sẽ bàn kỹ hơn ở chương sau. Trước mắt, bạn chỉ cần nhớ 200 nghĩa là mọi thứ diễn ra như mong đợi.

Vector urls đã có sẵn trong workspace của bạn, và purrr cùng httr đã được nạp sẵn.

Bài tập này là một phần của khóa học

Lập trình hàm nâng cao với purrr

Xem khóa học

Hướng dẫn bài tập

  • Tạo một phiên bản của GET() sẽ trả về NULL nếu có lỗi.

  • Đặt tên cho các kết quả.

  • Loại bỏ các phần tử NULL.

  • Trích xuất "status_code" của mỗi phần tử.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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)
Chỉnh sửa và Chạy Mã