http://www.soccer24.com/kosovo/superliga/results/#
我可以做以下事情:
library(rvest)doc <- HTML("http://www.soccer24.com/kosovo/superliga/results/")
但我很难知道如何获取数据.这是因为网站上的实际数据似乎是由JavaScript生成的.我能做的是
HTML_text(doc)
但这会给人一种奇怪的文本模糊(这确实包含了数据,但却散布着奇怪的代码,而且根本不清楚我将如何解析它.
我想要提取的是所有比赛的比赛数据(日期,时间,球队,结果).此站点无需其他数据.
任何人都可以提供一些提示,如何从这个网站提取数据?
解决方法 使用Selenium与phantomJslibrary(RSelenium)pJs <- phantom()remDr <- remoteDriver(browsername = "phantomJs")appURL <- "http://www.soccer24.com/kosovo/superliga/results/#"remDr$open()remDr$navigate(appURL)
如果你想按下更多数据按钮,直到它不可见(所有匹配假定显示):
webElem <- remDr$findElement("CSS","#tournament-page-results-more a")while(webElem$isElementdisplayed()[[1]]){ webElem$clickElement() Sys.sleep(5) webElem <- remDr$findElement("CSS","#tournament-page-results-more a")}doc <- HTMLParse(remDr$getPageSource()[[1]])
删除不需要的舍入数据并使用XML :: readHTMLtable以简化 *** 作
# remove unwanted rounds HTML. Sometimes there are end of season extra games.# These are presented in a seperate table.invisible(doc["//table/*/tr[@class='event_round']",fun = removeNodes])appData <- readHTMLtable(doc,which = seq(length(doc["//table"])-1),stringsAsFactors = FALSE,trim = TRUE)if(!is.data.frame(appData)){appData <- do.call(rbind,appData)}row.names(appData) <- NulLnames(appData) <- c("blank","Date","hteam","ateam","score")pJs$stop()> head(appData)blank Date hteam ateam score1 01.04. 18:00 Ferronikeli Ferizaj 4 : 02 01.04. 18:00 Istogu Hajvalia 2 : 13 01.04. 18:00 Kosova Vushtrri Trepca Mitrovice 1 : 04 01.04. 18:00 Prishtina Drenica 3 : 05 31.03. 18:00 Besa Peje Drita 1 : 06 31.03. 18:00 Trepca 89 Vellaznimi 2 : 0> tail(appData) blank Date hteam ateam score115 17.08. 22:00 Besa Peje Trepca 89 3 : 3116 17.08. 22:00 Ferronikeli Hajvalia 2 : 5117 17.08. 22:00 Trepca Mitrovice Ferizaj 1 : 0118 17.08. 22:00 Vellaznimi Drenica 2 : 1119 16.08. 22:00 Kosova Vushtrri Drita 0 : 1120 16.08. 22:00 Prishtina Istogu 2 : 1
根据需要进行进一步格式化.
总结以上是内存溢出为你收集整理的难以理解如何从该站点抓取数据(使用R)全部内容,希望文章能够帮你解决难以理解如何从该站点抓取数据(使用R)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)