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

ตัวดึงข้อมูลอีกแบบหนึ่ง

ในแบบฝึกหัดก่อนหน้า เราได้สร้างฟังก์ชันที่ดึงเนื้อหาข้อความจากหัวเรื่อง H2 ได้สำเร็จ

คราวนี้ลองทำสิ่งอื่นกันบ้าง: เราต้องการดึงลิงก์ทั้งหมดที่มีอยู่ในหน้าเว็บที่กำหนด โดยจะต้องเรียกใช้ฟังก์ชันจาก httr สองตัว ได้แก่ html_nodes() ซึ่งกำหนด argument css เป็น "a" (a คือแท็ก HTML สำหรับลิงก์) และ html_attr() ซึ่งดึง attribute ที่ต้องการจาก node — ในกรณีนี้คือ "href" ซึ่งเป็นที่อยู่ของลิงก์

โหลด purrr และ rvest ไว้ให้แล้ว และยังสามารถเรียกใช้เวกเตอร์ urls ใน workspace ได้เช่นเดิม

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Functional Programming ระดับกลางด้วย purrr

ดูคอร์ส

คำแนะนำการฝึกหัด

  • Prefill ฟังก์ชัน html_nodes() โดยกำหนด argument css เป็น "a"

  • สร้างฟังก์ชัน href() ซึ่งเป็นเวอร์ชัน prefill ของ html_attr()

  • Compose การรวมกันของ href(), get_a() และ read_html() ให้เป็นฟังก์ชันใหม่

  • Map ฟังก์ชันใหม่นี้บนเวกเตอร์ urls

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

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