我正在尝试废弃网站上的表格,但无法成功...我已经做过很多次了,它总是有效,但从那时起,表格似乎是某种 Javascript ,并且解析根本不起作用?有人能帮我吗?
页面是here .
我已经尝试过通常的方法:
readHTMLTable(doc//table[@id='live-player-home-offensive-grid'], as.data.frame=TRUE, header=FALSE)
# or
xpathSApply(pagetree, "//*/table[@id='live-player-home-offensive-grid']", xmlValue)
最佳答案
问题是数据不在表中,而是在Javascript代码中—— 仅当页面在浏览器中呈现时,它才会放入表格中。
我没有看到一种干净的提取方法, 缺少使用 Javacript 工具或 Web 浏览器 Controller ( Zombie.js , CasperJS , PhantomJS , Selenium )。
以下内容将 HTML 页面读取为字符串,
并查找 initialData
变量的定义,
显然包含数据。
它以同样难以使用的格式返回数据,
列表的列表的列表的列表的列表的列表的列表的列表的列表。
library(RCurl)
url <- "http://www.whoscored.com/Matches/411429/LiveStatistics/England-Premier-League-2010-2011-Fulham-Arsenal"
html <- getURL(url)
initial_data <- gsub("^.*?initialData = (.*?);.*", "\\1", html)
initial_data <- gsub("'", '"', initial_data)
library(RJSONIO)
data <- fromJSON( initial_data )
关于javascript - 抓取 HTML(或 JavaScript)表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19610281/