我尝试抓取得分/事件时间以及玩家姓名 http://en.gooooal.com/soccer/analysis/8401/events_840182.html .但是无法工作。
require(RCurl);
require(XML);
lnk = "http://en.gooooal.com/soccer/analysis/8401/events_840182.html";
doc = htmlTreeParse(lnk,useInternalNodes=TRUE);
x = unlist(xpathApply(doc, "//table/tr/td"));
普通的html页面不会显示表格内容的详细信息。 节点只能从
>>> 打开 Chrome >>> 单击 F12 >>> 单击元素
有人可以帮忙吗?非常感谢。
最佳答案
如果在 Chrome 开发者工具处于事件状态时重新加载页面,您可以看到实际数据是通过 XHR 从 http://en.gooooal.com/soccer/analysis/8401/goal_840182.js?GmFEjC8MND 获取的
。此 URL 包含事件 ID 840182
,您可以从页面中抓取该 ID。 ?
之后的部分似乎只是规避浏览器缓存的一种方法。 8401
,再次,似乎只是 ID 的前几个数字。
因此,您可以加载原始页面,构造第二个 URL,并从那里获取真实数据。
无论如何......在大多数情况下,从网站上抓取数据是一种在道德上有问题的做法。我希望你知道自己在做什么:)
关于javascript - 抓取表格中无法在 html 中找到但只能在 Chrome>F12>Element 中找到的子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18947719/