Library rvest
Library rvest, dikelola oleh Hadley Wickham yang legendaris, adalah pustaka yang memungkinkan pengguna mengikis (“memanen”) data dari halaman web dengan mudah.
rvest adalah salah satu pustaka yang rapi, sehingga bekerja dengan baik dengan pustaka lain yang terdapat dalam bundel. rvest mengambil inspirasi dari perpustakaan scraping web BeautifulSoup, yang berasal dari Python. Cara menggunakan dengan perintah sebagai berikut :
library(rvest)
## Loading required package: xml2
Pada tutorial ini kita akan mengambil data dari web sederhana berikut ini :
Web Sederhana
Untuk mulai mem-parse melalui halaman web, pertama-tama kita perlu meminta data tersebut dari server komputer yang memuatnya. Dalam revest, fungsi yang melayani tujuan ini adalah fungsi read_html ().
read_html () menggunakan URL web sebagai argumen. Mari kita mulai dengan melihat halaman sederhana tanpa CSS dari sebelumnya untuk melihat bagaimana fungsinya bekerja.
simple <- read_html("http://dataquestio.github.io/web-scraping-pages/simple.html")
Fungsi read_html () mengembalikan objek daftar yang berisi data berbentuk struktur pohon.
simple
## {html_document}
## <html>
## [1] <head>\n<meta http-equiv="Content-Type" content="text/html; charset=UTF-8 ...
## [2] <body>\n <p>Here is some simple content for this page.</p>\n </ ...
Misalkan kita ingin menyimpan teks yang terdapat dalam tag
tunggal ke sebuah variabel. Untuk mengakses teks ini, kita perlu mencari cara untuk menargetkan bagian teks ini. Di sinilah biasanya kelas dan id CSS dapat membantu kami karena pengembang yang baik biasanya akan membuat CSS menjadi sangat spesifik di situs mereka.
Dalam kasus ini, kami tidak memiliki CSS semacam itu, tetapi kami tahu bahwa tagyang ingin kami akses adalah satu-satunya dari jenisnya di laman. Untuk menangkap teks, kita perlu menggunakan fungsi html_nodes () dan html_text () masing-masing untuk mencari tag
ini dan mengambil teksnya. Kode di bawah melakukan ini:
simple %>%
html_nodes("p") %>%
html_text()
## [1] "Here is some simple content for this page."
Variabel sederhana sudah berisi HTML yang kita coba kikis, sehingga hanya menyisakan tugas untuk mencari elemen yang kita inginkan darinya. Karena kami bekerja dengan tidyverse, kami cukup menyalurkan HTML ke berbagai fungsi.
Kita perlu meneruskan tag HTML atau kelas CSS tertentu ke dalam fungsi html_nodes (). Kita membutuhkan tag
, jadi kita memasukkan karakter “p” ke dalam fungsi. html_nodes () juga mengembalikan daftar, tetapi mengembalikan semua node dalam HTML yang memiliki tag HTML tertentu atau kelas / id CSS yang Anda berikan. Node mengacu pada titik pada struktur seperti pohon.
Daftar Pustaka :