使用R屏幕抓取实际页面而不是源html

时间:2014-07-19 01:48:22

标签: r screen-scraping

我正在尝试使用R从此页面屏蔽网球结果数据(逐点数据,而不仅仅是最终结果)。

http://www.scoreboard.com/au/match/wang-j-karlovic-i-2014/M1mWYtEF/#point-by-point;1

使用常规的R屏幕抓取功能,如readlines(),htmlParseTree()等,我能够抓取页面的源html,但不包含结果数据。

是否可以从页面中抓取所有文本,就好像我在浏览器中的页面上并选择了所有文本然后复制一样?

1 个答案:

答案 0 :(得分:6)

使用来自http://d.scoreboard.com/au/x/feed/d_mh_M1mWYtEF_en-au_1的AJAX加载数据,因此R将无法为您加载它。但是,因为两者都使用代码M1mWYtEF,所以您可以直接转到包含所需数据的页面。使用Chrome的devtools,我看到该页面发送了X-Fsign: SW9D1eZo标题,可让您访问该页面(否则会出现401 Unauthorized错误。)

以下是获取保存您的示例页面所需数据的html的R代码:

library(httr)
page_code <- "M1mWYtEF"
linked_page <- paste0("http://d.scoreboard.com/au/x/feed/d_mh_", 
                      page_code, "_en-au_1")
GET(linked_page, add_headers("X-Fsign" = "SW9D1eZo"))