当前位置: 首页 > 知识库问答 >
问题:

R网络垃圾,不确定如何继续

蒲功
2023-03-14

对于一个附带项目,我试图收集与梦幻足球相关的NFL球员的统计数据。我找到了一个URL,其中包含我想要的数据:https://www.cbssports.com/fantasy/football/stats/QB/2020/ytd/stats/ppr/

我试图在R中勉强应付,但运气不好。我试过很多东西,最接近的是:

Test1 <- read_html("https://www.cbssports.com/fantasy/football/stats/QB/2020/season/projections/ppr/") %>% html_nodes('.TableBase-bodyTr')

这是我到目前为止得到的代码,结果如下:

Test1
{xml_nodeset (69)}
 [1] <tr class="TableBase-bodyTr">\n<td class="TableBase-bodyTd \n                \n                \n                \n                ">\n                    <span class="CellPlayerName--sho ...
 [2] <tr class="TableBase-bodyTr">\n<td class="TableBase-bodyTd \n                \n                \n                \n                ">\n                    <span class="CellPlayerName--sho ...
 [3] <tr class="TableBase-bodyTr">\n<td class="TableBase-bodyTd \n                \n                \n                \n                ">\n                    <span class="CellPlayerName--sho ...
 [4] <tr class="TableBase-bodyTr">\n<td class="TableBase-bodyTd \n                \n                \n                \n                ">\n                    <span class="CellPlayerName--sho ...

我尝试将其输入html_text(),结果我得到了这个:

[65] "\n                    \n                        \n                        \n            \n                                                                                                    \n            J. Eason\n    \n                                        \n                                    \n                        QB\n                    \n                    \n                                    \n                        IND\n                    \n                                \n                \n                \n                            \n        \n        \n            

这只是纯粹的混乱,相关的信息被嵌入其中。我还试着对它使用html_table(),结果得到了一个错误。

现在,如果我在“Test1”上使用视图函数,我可以钻取许多层的数据,找到我要找的,但我想知道的是如何直接获取数据。

我真的不知道从这里去哪里。如果有人能给我一些建议,我将非常感激。我对超文本标记语言的熟悉程度非常低,我正在尝试阅读更多关于它的信息并理解它,但是从我通过检查页面能够收集到的数据存储在类“TableBase-body Tr”中,这就是为什么我将节点指向那里。

共有1个答案

谭俊
2023-03-14

表格格式中有一些奇怪的东西导致了一个错误:html_table()。不太确定如何纠正这一点。

这里有一个替代方法,可以抓取行的内容,然后创建数据帧。

library(rvest)
page <- read_html("https://www.cbssports.com/fantasy/football/stats/QB/2020/season/projections/ppr/") 

#find the rows of the table
rows<-page%>% html_nodes('tr')

#the first 2 rows are the header information skipping those
#get the playname (both short and long verision)
playername <- rows[-c(1, 2)] %>% html_nodes('td span span a') %>% html_text() %>% trimws() 
playername <- matrix(playername, ncol=2, byrow=TRUE)

#get the team and position
position <- rows[-c(1, 2)] %>% html_nodes('span.CellPlayerName-position') %>% html_text() %>% trimws() 
team <- rows[-c(1, 2)] %>% html_nodes('span.CellPlayerName-team') %>% html_text() %>% trimws() 

#get the stats from the table
cols <- rows[-c(1, 2)] %>% html_nodes('td') %>% html_text() %>% trimws() 
stats <-matrix(cols, ncol=16, byrow=TRUE)

#make the final answer
answer <- data.frame(playername, position, team, stats[, -1])
#still need to rename the columns
statnames<-c("Name_s", "Name_l", "position", "team",  'GP', 'ATT', 'CMP', 'YDS', 'YDS/G', "TD", 'INT', 'RATE', 'ATT', 'YDS', 'AVG', 'TD', 'FL', 'FPTS', "FPPG")
names(answer) <- statnames

这将使您获得95%,我没有尝试从网页中自动检索列名称。手动复制、粘贴和分配列名称更容易。

 类似资料:
  • 问题内容: 有人可以解释一下G1垃圾收集器的工作原理吗?我还无法在任何地方找到任何全面,易于理解的描述。 谢谢 问题答案: 收集器将堆分成固定大小的区域,并跟踪这些区域中的实时数据。它将一组指针(“记住的集”)保留在区域内和区域外。当认为有必要使用GC时,它将首先收集实时数据较少的区域(因此,“垃圾优先”)。通常,这意味着一步就可以收集整个区域:如果进入一个区域的指针数量为零,则无需对该区域进行标

  • 问题内容: 您如何确定使用Java的哪个网络接口连接到Internet?例如,我跑步 在Eclipse中,这恰好返回了我想要的值192.168.1.105。但是,如果我将此文件打包到jar文件中并运行程序,则代码将返回169.254.234.50。对此进行调查后,我发现这是机器上的VMware虚拟以太网适配器接口的IP地址。 有什么方法可以确定连接到Internet的接口,但同时又可以保持我代​​

  • 问题内容: 我有一段代码可以在内存中加载很大的图像。所以打电话似乎是合理的事情 在加载图像之前。据我所知,它毫无问题。 昨天,我决定使用一个名为FindBugs的非常有用的软件来扫描您的代码并报告可能导致错误或通常不建议使用的策略的问题。问题是我提到的这段代码得到了报告。描述是这样的: …强迫垃圾收集;除了基准测试代码外,都非常可疑 并继续阐述: 代码显式调用垃圾回收。除了基准测试中的特定用途外,

  • 问题内容: 简短形式:CMS垃圾收集器似乎无法收集数量不断增加的垃圾;最终,我们的JVM填满,应用程序变得无响应。通过外部工具(JConsole或)强制GC 清理一次。 更新:该问题似乎与JConsole的JTop插件有关。如果我们不运行JConsole,或者在没有JTop插件的情况下运行它,则该行为消失。 (技术说明:我们正在Linux 2.6.9机器上运行32位Sun JDK 1.6.0_07

  • 鉴于: 当到达第11行时,有多少对象符合垃圾收集条件?

  • 本文向大家介绍垃圾邮件和网络钓鱼邮件之间的区别,包括了垃圾邮件和网络钓鱼邮件之间的区别的使用技巧和注意事项,需要的朋友参考一下 垃圾邮件 垃圾邮件是垃圾邮件。它可能包含广告/促销详细信息。垃圾邮件通常是从受病毒或蠕虫感染的受感染计算机发送的。这样的计算机批量发送电子邮件。某些垃圾邮件中可能包含有害链接,恶意软件或内容,这些内容看起来真实可信但有意滥用。例如,发邮件说明您是大彩票的赢家,并要求提供银