Một bộ trích xuất khác
Ở bài tập trước, chúng ta đã xây dựng một hàm có thể trích xuất nội dung văn bản từ các thẻ tiêu đề H2.
Giờ thử một bài khác: chúng ta muốn trích xuất tất cả các liên kết có trên một trang cụ thể. Để làm điều này, bạn sẽ cần gọi hai hàm của httr: html_nodes() với đối số css đặt là "a" (a là thẻ HTML dành cho liên kết) và html_attr(), hàm này trích xuất một thuộc tính nhất định từ một node — trong trường hợp của chúng ta, thuộc tính đó sẽ là "href", tức địa chỉ liên kết.
purrr và rvest đã được nạp sẵn cho bạn. Bạn vẫn có thể tìm thấy vector urls trong không gian làm việc của mình.
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
Hướng dẫn bài tập
Điền sẵn đối số
csslà"a"chohtml_nodes().Tạo hàm
href(), là phiên bản đã điền sẵn củahtml_attr().Kết hợp theo thứ tự mới giữa
href(),get_a()vàread_html()bằng cách compose.Dùng map áp dụng hàm mới này lên vector
urls.
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.
# Create a partial version of html_nodes(), with the css param set to "a"
get_a <- ___(html_nodes, ___)
# Create href(), a partial version of html_attr()
href <- ___(___, name = "href")
# Combine href(), get_a(), and read_html()
get_links <- ___(___, ___, ___)
# Map get_links() to the urls list
res <- ___(urls, ___) %>%
set_names(urls)
# See the result
res