在 R 中的页面上抓取多个表

问题描述 投票:0回答:1

我正在尝试使用

rvest
来抓取 R 中以下链接的多个表中的所有数据。

https://report-nle.dephub.go.id/dashboard/detail/27019186

当我尝试以下代码时,我只能看到第一个表的内容。

tables <- read_html(url) %>% html_nodes(css = "table") %>% html_table()

[[1]]
# A tibble: 6 × 6
  X1                        X2    X3                    X4                     X5    X6                                               
  <chr>                     <chr> <chr>                 <chr>                  <chr> <chr>                                            
1 Nama Kapal                :     MV. BRILLIANT EXPRESS Nama Perusahaan        :     PT. LAJU DINAMIKA UTAMA                          
2 Nahkoda                   :     BANAL ELVIN REGALDO   Jenis Kapal            :     WOOD CHIP CARRIER                                
3 Bendara / Call Sign / IMO :     PA / 3ETN5 / 9502570  GT / DWT               :     40269 / 49802                                    
4 Panjang / Lebar           :     199.91 / 0            Draft Depan / Belakang :     6 / 8                                            
5 Draft Tengah / Max        :     / 11.787              Status NLE             :     Ya dengan nomor : 101018F3C3E66                  
6 Asal / Tujuan             :     RIZHAO PT / RIZHAO PT PKK / SPB              :     PKK.LN.IDBPN.2403.000682 / SPB.IDBPN.0324.0000951

[[2]]
# A tibble: 0 × 10
# ℹ 10 variables: No <lgl>, Nama Barang <lgl>, Jenis barang <lgl>, Unit/Ton/M3 <lgl>, No BL <lgl>, Shipper <lgl>, Consignee <lgl>,
#   B/M <lgl>, LHV <lgl>, NTPN <lgl>

[[3]]
# A tibble: 0 × 10
# ℹ 10 variables: No <lgl>, Nama Barang <lgl>, Jenis barang <lgl>, Unit/Ton/M3 <lgl>, No BL <lgl>, Shipper <lgl>, Consignee <lgl>,
#   B/M <lgl>, LHV <lgl>, NTPN <lgl>

[[4]]
# A tibble: 0 × 7
# ℹ 7 variables: Nomor PKK <lgl>, Pelabuhan <lgl>, ETA <lgl>, Asal <lgl>, ETD <lgl>, Tujuan <lgl>, Action <lgl>

[[5]]
# A tibble: 0 × 5
# ℹ 5 variables: Kode Billing <lgl>, Nama Wajib Bayar <lgl>, NTPN <lgl>, NTB <lgl>, Total <lgl>

我怎样才能获取所有其他表的内容?

html r web-scraping rvest
1个回答
0
投票

尝试

read_html_live()

来自文档:

read_html() 对从服务器下载的 HTML 源代码进行操作。这适用于大多数网站,但如果网站使用 javascript 生成 HTML,则可能会失败。 read_html_live() 提供了一个在后台运行实时网络浏览器 (Chrome) 的替代接口。这允许您访问由 javascript 动态生成的 HTML 页面元素,并通过单击按钮或输入表单与实时页面交互。

也在下面,

html_elements()
只是
html_nodes()
最近添加的别名。效果是一样的。

library(rvest)
url <- "https://report-nle.dephub.go.id/dashboard/detail/27019186"
html <- read_html_live(url)

# Using the html tag pulled more than I saw on the page
tables.from.tag <- html_elements(html, css = "table")

# This pulled the 5 visible ones I saw on the page
tables.from.class <- html_elements(html, css = ".table")

# Parse the tables
html_table(tables.from.class)
packageVersion("rvest")
# [1] ‘1.0.4’
© www.soinside.com 2019 - 2024. All rights reserved.