难以理解如何从该站点抓取数据(使用R)

难以理解如何从该站点抓取数据(使用R),第1张

概述我试图从这个站点使用R来刮取数据: http://www.soccer24.com/kosovo/superliga/results/# 我可以做以下事情: library(rvest)doc <- html("http://www.soccer24.com/kosovo/superliga/results/") 但我很难知道如何获取数据.这是因为网站上的实际数据似乎是由Javascript生成 我试图从这个站点使用R来刮取数据:
http://www.soccer24.com/kosovo/superliga/results/#

我可以做以下事情:

library(rvest)doc <- HTML("http://www.soccer24.com/kosovo/superliga/results/")

但我很难知道如何获取数据.这是因为网站上的实际数据似乎是由JavaScript生成的.我能做的是

HTML_text(doc)

但这会给人一种奇怪的文本模糊(这确实包含了数据,但却散布着奇怪的代码,而且根本不清楚我将如何解析它.

我想要提取的是所有比赛的比赛数据(日期,时间,球队,结果).此站点无需其他数据.

任何人都可以提供一些提示,如何从这个网站提取数据?

解决方法 使用Selenium与phantomJs
library(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)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1134146.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存