Tôi đang cố sử dụng rvest
để trích ngày sinh cho người chơi PGA. Hãy thử Stuart Appleby. Đây là hồ sơ của anh ấy trên trang web ESPN http://espn.go.com/golf/player/_/id/11/stuart-appleby. Chú ý DOB của mình bên cạnh headshot của mình.Lỗi rvest: nhập 'externalptr'
library("rvest")
url <- "http://espn.go.com/golf/player/_/id/11/stuart-appleby"
li_node <- url %>% html %>% html_nodes("li")
DOB của anh ấy được chứa trong mục 22 của li_node. Lý tưởng nhất, tôi sẽ không mã cứng [[22]] vào chương trình của tôi, nhưng ngay cả khi tôi làm, tôi chạy vào các lỗi.
li_node[[22]]
hiển thị các thông tin tôi muốn, nhưng những thứ như:
word(li_node[[22]], ...)
substr(li_node[[22]], ...)
pluck(li_node, 22)
tất cả trở lại một lỗi:
> word(li_node[[22]], 1)
Error in rep(string, length = n) :
attempt to replicate an object of type 'externalptr'
> substr(li_node[[22]], 1, 2)
Error in as.vector(x, "character") :
cannot coerce type 'externalptr' to vector of type 'character'
> pluck(li_node, 22)
Error in FUN(X[[1L]], ...) :
object of type 'externalptr' is not subsettable
Có một cách đơn giản đối với tôi để lấy đó DOB sử dụng rvest
?
Rất tốt. Bây giờ để trích xuất phần "ngày 1 tháng 5 năm 1971", tôi có thể làm: 'dob <- url %>% html%>% html_nodes (xpath = '// li [contains (.," Age ")]')%>% html_text () chất nền (dob, 11, nchar (dob) - 10) ' – hossibley
chỉnh sửa câu trả lời để thêm phần str_extract để lấy chuỗi ngày ... – cory
Thậm chí tốt hơn! Cảm ơn! – hossibley