Halaman web target dengan data tabel
Untuk tutorial ini, kita akan melihat situs web pemain basket. Katakanlah kita tertarik untuk mengambil data tabel dari URL https://www.basketball-reference.com/players/l/leonaka01.html
Web Halaman Target
Untuk itu kita menggunakan librari rvest :
library(rvest)
## Loading required package: xml2
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 untuk meilhat data tabel
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 data tabel dalam HTML halaman pemain basket, 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 data tabel dengan id tag tavel advanced yang terdapat dalam HTML berikut.
Menggunakan apa yang telah kami pelajari
Sekarang setelah kami mengidentifikasi HTML dan CSS tertentu yang perlu kami targetkan data tabel di halaman web, kami dapat menggunakan rvest untuk menangkapnya.
Dari HTML di atas, sepertinya tabel data advanced terkandung dalam kelas tabel dengan id advanced. Setelah kita memiliki semua tag ini, kita dapat mengekstrak teks darinya.
url = "https://www.basketball-reference.com/players/l/leonaka01.html"
url %>%
read_html %>%
html_nodes(xpath = '//comment()') %>%
html_text() %>%
toString() %>%
read_html() %>%
html_node('table#advanced') %>%
html_table()
## Season Age Tm Lg Pos G MP PER TS% 3PAr FTr ORB% DRB% TRB%
## 1 2011-12 20 SAS NBA SF 64 1534 16.6 0.573 0.270 0.218 7.9 16.4 12.2
## 2 2012-13 21 SAS NBA SF 58 1810 16.4 0.592 0.331 0.240 4.3 17.1 11.1
## 3 2013-14 22 SAS NBA SF 66 1923 19.4 0.602 0.282 0.195 4.6 18.9 12.1
## 4 2014-15 23 SAS NBA SF 64 2033 22.0 0.567 0.234 0.307 4.8 20.6 12.9
## 5 2015-16 24 SAS NBA SF 72 2380 26.0 0.616 0.267 0.306 4.7 18.4 11.8
## 6 2016-17 25 SAS NBA SF 74 2474 27.6 0.610 0.295 0.406 3.7 15.7 9.8
## 7 2017-18 26 SAS NBA SF 9 210 26.0 0.572 0.315 0.342 3.1 19.1 11.1
## 8 2018-19 27 TOR NBA SF 60 2040 25.8 0.606 0.267 0.377 4.2 18.6 11.6
## 9 2019-20 28 LAC NBA SF 57 1848 26.9 0.589 0.287 0.355 3.1 19.1 11.3
## 10 2020-21 29 LAC NBA SF 16 546 28.0 0.615 0.268 0.289 3.1 14.2 8.8
## 11 Career NA NBA 540 16798 23.2 0.598 0.278 0.323 4.5 18.0 11.4
## 12 NA NA NA NA NA NA NA NA NA NA
## 13 7 seasons NA SAS NBA 407 12364 22.1 0.597 0.279 0.305 4.8 17.9 11.6
## 14 2 seasons NA LAC NBA 73 2394 27.1 0.594 0.283 0.341 3.1 18.0 10.7
## 15 1 season NA TOR NBA 60 2040 25.8 0.606 0.267 0.377 4.2 18.6 11.6
## AST% STL% BLK% TOV% USG% OWS DWS WS WS/48 OBPM DBPM BPM VORP
## 1 6.6 2.9 1.1 9.0 14.5 NA 3.1 2.4 5.5 0.171 NA 1.6 1.8 3.4 2.1
## 2 7.7 2.7 1.3 9.6 16.4 NA 3.0 3.3 6.2 0.166 NA 1.1 2.0 3.1 2.3
## 3 10.4 3.0 1.9 10.3 18.3 NA 3.8 3.9 7.7 0.193 NA 2.1 3.0 5.1 3.5
## 4 13.0 3.7 1.8 9.4 23.0 NA 4.2 4.4 8.6 0.204 NA 2.8 3.1 5.9 4.1
## 5 13.0 2.8 2.3 7.8 25.8 NA 8.3 5.5 13.7 0.277 NA 6.1 3.0 9.1 6.7
## 6 18.9 2.7 1.8 9.1 31.1 NA 8.9 4.7 13.6 0.264 NA 7.1 2.2 9.4 7.1
## 7 17.7 4.3 3.6 11.1 30.6 NA 0.3 0.5 0.9 0.196 NA 5.2 4.9 10.1 0.6
## 8 16.4 2.5 1.0 8.4 30.3 NA 6.1 3.4 9.5 0.224 NA 6.1 1.1 7.2 4.7
## 9 26.4 2.6 1.6 10.2 33.0 NA 5.4 3.3 8.7 0.226 NA 6.5 2.4 8.9 5.1
## 10 28.2 2.7 1.7 7.4 29.4 NA 2.3 0.8 3.1 0.270 NA 5.8 1.1 7.0 1.2
## 11 14.9 2.9 1.7 9.1 24.9 NA 45.4 32.2 77.6 0.222 NA 4.5 2.4 6.8 37.5
## 12 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## 13 12.3 3.0 1.8 9.1 22.5 NA 31.6 24.7 56.3 0.219 NA 3.8 2.6 6.4 26.4
## 14 26.9 2.7 1.6 9.7 32.2 NA 7.7 4.1 11.8 0.236 NA 6.3 2.1 8.4 6.4
## 15 16.4 2.5 1.0 8.4 30.3 NA 6.1 3.4 9.5 0.224 NA 6.1 1.1 7.2 4.7
Daftar Pustaka :