gpt4 book ai didi

rvest 函数 html_nodes 返回 {xml_nodeset (0)}

转载 作者:行者123 更新时间:2023-12-01 23:11:05 25 4
gpt4 key购买 nike

我正在尝试抓取以下网站的数据框

http://stats.nba.com/game/0041700404/playbyplay/

我想创建一个表格,其中包含比赛日期、整场比赛的得分以及球队名称

我正在使用以下代码:

game1 <- read_html("http://stats.nba.com/game/0041700404/playbyplay/")

#Extracts the Date
html_nodes(game1, xpath = '//*[contains(concat( " ", @class, " " ), concat( " ", "game-summary-team--vtm", " " ))]//*[contains(concat( " ", @class, " " ), concat( " ", "game-summary-team__lineup", " " ))]')

#Extracts the Score
html_nodes(game1, xpath = '//*[contains(concat( " ", @class, " " ), concat( " ", "status", " " ))]//*[contains(concat( " ", @class, " " ), concat( " ", "score", " " ))]')

#Extracts the Team names
html_nodes(game1, xpath = '//*[contains(concat( " ", @class, " " ), concat( " ", "game-summary-team__name", " " ))]//a')

不幸的是,我得到以下信息

{xml_nodeset (0)}
{xml_nodeset (0)}
{xml_nodeset (0)}

我已经看到了很多关于这个问题的问题和答案,但似乎没有一个有帮助。

最佳答案

不幸的是,rvest 不能很好地处理动态创建的 JavaScript 页面。它最适合静态 HTML 网页。

我建议看一下RSelenium 。最后,我使用rsDriver从页面中得到了一些东西。

代码示例:

library(RSelenium)
rD <- rsDriver() # runs a chrome browser, wait for necessary files to download
remDr <- rD$client
#no need for remDr$open() browser should already be open
remDr$navigate("http://stats.nba.com/game/0041700404/playbyplay/")

teams <- remDr$findElement(using = "xpath", "//span[@class='team-full']")
teams$getElementText()[[1]]
# and so on...

remDr$close()
# stop the selenium server
rD[["server"]]$stop()
# if user forgets to stop server it will be garbage collected.
rD <- rsDriver()
rm(rD)
gc(rD)

等等...

PS:我在使用当前 R 的 Windows 上安装它时遇到了一些麻烦*这个worked* How to set up rselenium for R?

关于rvest 函数 html_nodes 返回 {xml_nodeset (0)},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51219793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com