我正试图从Second Songs网站上获取一张简单的桌子。我在R中使用以下代码和rvest
包。
library(tidyverse)
library(rvest)
levee_breaks_url <- html('https://secondhandsongs.com/performance/17982')
levee_breaks_url %>%
html_node('.field-performer') %>%
html_text()
哪个返回
[1] "Performer "
我的目标是获取页面上表中所有信息的列表。我试过包括html_node('.container')
,但结果不正确。
我正在使用selector gadget
,并在抓取其他网站方面取得了成功,但是我在此问题上停留了一段时间。
答案 0 :(得分:3)
尝试一下。这将刮擦所有表,将它们组合在一起,然后为列指定正确的名称。
library(tidyverse)
library(rvest)
levee_breaks_url <- read_html('https://secondhandsongs.com/performance/17982')
df <- levee_breaks_url %>%
html_nodes('.table') %>%
html_table() %>%
reduce(rbind) %>%
select(-1) %>%
rename_all(~levee_breaks_url %>%
html_nodes('th') %>%
html_text() %>%
.[2:5]) %>%
as.tibble()
df
#> # A tibble: 32 x 4
#> `Title ` `Performer ` `Release date ` Info
#> <chr> <chr> <chr> <chr>
#> 1 When the Leve… Kansas Joe and Memp… 1929 First release
#> 2 When the Leve… John Campbell February 20, 19… ""
#> 3 When the Leve… Clint Black 2005 ""
#> 4 When the Leve… Bennett Harris August 27, 2008 ""
#> 5 When the Leve… Buckwheat Zydeco 2009 ""
#> 6 Levee Breaks Beverley Martyn April 2014 ""
#> 7 When the Leve… Danny B. Harvey - M… October 14, 2014 ""
#> 8 When the Leve… Led Zeppelin November 8, 1971 First releaseSamp…
#> 9 When the Leve… Judge 1990 ""
#> 10 When the Leve… Rosetta Stone October 14, 1991 Unverified
#> # ... with 22 more rows
由reprex package(v0.2.0)于2018-09-06创建。