【问题标题】:Extracting soccer scores from website从网站中提取足球比分
【发布时间】:2013-10-20 16:33:47
【问题描述】:

我正在尝试从http://www.rsssf.com/tablese/eng2014.html 中提取一些数据,例如联赛排名以及每一轮的得分到 R 中。

我知道我正在尝试使用 XML,可以使用 RCurl 包,但我不完全确定这样做的方法。

参考这个: Scraping html tables into R data frames using the XML package

library(XML)
theurl <- "http://en.wikipedia.org/wiki/Brazil_national_football_team"
tables <- readHTMLTable(theurl)
n.rows <- unlist(lapply(tables, function(t) dim(t)[1]))
the picked table is the longest one on the page

tables[[which.max(n.rows)]]

我仍然无法在网站上获得表格。如果有人可以帮助我,我真的很感激。谢谢!

【问题讨论】:

    标签: xml r curl web


    【解决方案1】:

    您遇到问题的原因是给定的表格不是 HTML 表格。您可以通过在浏览器中使用查看页面源来查看。下面是一些代码,可帮助您开始提取表中的数据并将其放入数据框中。

    dat = readLines('http://www.rsssf.com/tablese/eng2014.html', warn = F)
    start = grep('Table', dat)[1] + 2
    end = grep('Round', dat)[1] - 2
    dat2 <- dat[start:end]
    
    dat3 = read.fwf(textConnection(dat2), widths = c(3, 24, 3, 3, 3, 3, 8, 3))
    dat3[dat3$V1 != "---",]
    

    【讨论】:

    • 非常感谢您对我的帮助!另一个问题,你知道如何提取每轮的得分(联赛积分表下方的数据)吗?
    • 您可以通过检测数据的开始(Round * ...)、提取每一轮的文本表并将read.fwf 应用于每个表来实现。我建议编写一个函数来为特定回合执行此操作,然后使用lapply 循环。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-13
    • 2016-11-30
    • 2022-06-11
    • 2021-07-26
    • 1970-01-01
    • 1970-01-01
    • 2020-03-08
    相关资源
    最近更新 更多