Halaman web target
Untuk tutorial ini, kita akan melihat situs web Layanan Cuaca Nasional. Katakanlah kita tertarik untuk membuat aplikasi cuaca kita sendiri. Kami membutuhkan data cuaca itu sendiri untuk mengisinya.
Data cuaca diperbarui setiap hari, jadi kami akan menggunakan pengikisan web untuk mendapatkan data ini dari situs web NWS kapan pun kami membutuhkannya.
Untuk tujuan kami, kami akan mengambil data dari San Francisco, tetapi setiap halaman web kota terlihat sama, jadi langkah yang sama dapat digunakan untuk kota lain mana pun. Tangkapan layar dari halaman San Francisco ditampilkan di bawah ini:
library(rvest)
## Loading required package: xml2
Pada tutorial ini kita akan mengambil data dari web sederhana berikut ini :
Web Halaman Target
Kita secara khusus tertarik pada prediksi cuaca dan suhu setiap hari. Setiap hari memiliki ramalan cuaca hari dan malam hari. Sekarang setelah kami mengidentifikasi bagian dari laman web yang kami butuhkan, kami dapat menggali HTML untuk melihat tag atau kelas apa yang perlu kami pilih untuk menangkap data khusus ini.
Menggunakan firefox webdeveloper
Untungnya, sebagian besar browser modern memiliki alat yang memungkinkan pengguna memeriksa langsung HTML dan CSS halaman web mana pun. Di Firefox, keduanya disebut sebagai Alat Pengembang, dan memiliki nama yang mirip di peramban lain. Alat khusus yang paling berguna bagi kita untuk tutorial ini adalah Inspektur.
Kita dapat menemukan Alat Pengembang dengan melihat di pojok kanan atas browser Anda. Anda seharusnya dapat melihat Alat Pengembang jika kita menggunakan Firefox sehingga kita dapat melalui Tampilan -> Alat Lainnya -> Alat Pengembang. Ini akan membuka Alat Pengembang tepat di jendela browser Anda:
Alat Pengembang di Firefox
HTML yang kita kelola sebelumnya sangat sederhana, tetapi sebagian besar laman web yang akan telah kita lihat di atas adalah browser sangat rumit. Alat Pengembang akan memudahkan kita untuk memilih elemen yang tepat dari halaman web yang ingin kita kikis dan memeriksa HTML.
Kami perlu melihat di mana suhu dalam HTML halaman cuaca, jadi kami akan menggunakan alat Inspeksi untuk melihat elemen ini. Alat Inspeksi akan memilih HTML persis yang kita cari, jadi kita tidak perlu melihat sendiri!
Dengan mengklik elemen itu sendiri, kita dapat melihat bahwa perkiraan tujuh hari terdapat dalam HTML berikut. Kami telah memadatkan beberapa di antaranya agar lebih mudah dibaca:
Tujuh data dari developer Firefox
Menggunakan apa yang telah kami pelajari
Sekarang setelah kami mengidentifikasi HTML dan CSS tertentu yang perlu kami targetkan di laman web, kami dapat menggunakan rvest untuk menangkapnya.
Dari HTML di atas, kita memiliki semua tag ini, kita dapat mengekstrak teks darinya. Caranya variabel foracasts di isi dengan html seperti command line dibawah ini
forecasts <- html("https://forecast.weather.gov/MapClick.php?lat=37.7771&lon=-122.4196#.Xl0j6BNKhTY")
## Warning: 'html' is deprecated.
## Use 'xml2::read_html' instead.
## See help("Deprecated")
Hasil nya kita bisa lihat seperti ini :
forecasts
## {html_document}
## <html class="no-js">
## [1] <head>\n<meta http-equiv="Content-Type" content="text/html; charset=UTF-8 ...
## [2] <body>\n <main class="container"><header class="row clearfix" id=" ...
Kita lihat bahwa, kita akan mengambil data dari kelas .temp, maka command linbe yang dilakukan adalah sebagai berikut :
forcas <- forecasts %>%
html_nodes(".temp") %>%
html_text()
forcas
## [1] "High: 58 °F" "Low: 48 °F" "High: 60 °F" "Low: 50 °F" "High: 60 °F"
## [6] "Low: 50 °F" "High: 57 °F" "Low: 44 °F" "High: 58 °F"
Untuk mendapatkan nilainya saja maka kita lakukan perintah parse_number(), seperti command line dibawah ini :
library(readr)
##
## Attaching package: 'readr'
## The following object is masked from 'package:rvest':
##
## guess_encoding
parse_number(forcas)
## [1] 58 48 60 50 60 50 57 44 58
Hasil didapat bahwa kota SAN FRANCISCO DOWNTOWN (SFOC1) terdapat data suhu seperti diatas.
Daftar Pustaka :