0
我正在嘗試創建一個函數,用於擦除從我傳遞的每個html
源代碼中的player name
。問題是,刮開始創建兩個錯誤的行,所以我想slice
數據框排除前兩行。但是,行數是可變的,所以我不能硬編碼最後一行。在Rvest中使用Slice()函數
#### Libraries -------------------
library(rvest)
library(XML)
library(dplyr)
# Set source as example
site <- "http://www.pgatour.com/stats/stat.138.html"
get_player_name <- function(site){
player <- html(paste(site)) %>%
html_nodes(".player-name") %>%
html_text(trim=TRUE) %>%
as.data.frame() %>%
slice(3:max(nrow(.))) # Drop the first two rows
#slice(3:73) # This works for one site but not all = 73
names(player)[1] <- "PLAYER NAME" # Rename the column
player$ID <- seq.int(nrow(player)) # Create index variable
return(player)
}
當我運行:
a <- get_player_name(site)
的我得到以下錯誤:
Error: result would be too long a vector
In addition: Warning message:
In slice_impl(.data, dots) :
no non-missing arguments to max; returning -Inf
_「(B)您不得使用或允許或幫助他人使用自動電子流程,機器人,蜘蛛,刮板,網絡爬蟲或其他監控,複製或下載數據或其他內容的計算機程序使用PGATOUR.com或通過PGATOUR.com訪問,包括但不限於實時評分,視頻,音頻,統計,輪詢或數據內容,無論是當前還是檔案。「http://www.pgatour.com/company/tos.html因爲你可以不意味着你應該) – hrbrmstr
感謝這個信息 - 立即停止任何刮擦。應該看過。 – Jebediah15