javascript - 抓取 HTML(或 JavaScript)表

标签 javascript html r web-scraping html-table

我正在尝试废弃网站上的表格,但无法成功...我已经做过很多次了,它总是有效,但从那时起,表格似乎是某种 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.jsCasperJS , 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/

相关文章:

java - 给定一个 bySelector 我怎样才能得到这个元素的 child 的选择器?

javascript - Mongoose pre save 没有运行鉴别器

html - 如何旋转div的边框颜色

javascript - 比较图像与 javascript 时哪个更快?

r - 基于多列在数据框的最后一列中创建值

javascript - jQuery .ajax PUT 请求不尊重自定义 header

javascript - javascript 中的递归以使用具有单个父元素的子元素构建 HTML

jquery - 单击蓝色时突出显示文本框

r - 根据向量给出的 ID 从矩阵中提取多行

将数据从 postgresql 数据库读取到 R 中而不将列转换为因子