2016-05-09 66 views
0

this url string,(可能的)可选日期值“TODATE = 1399849199999”字符串的一部分,是指以毫秒表示UNIX时,其用于提取英超表针对特定天。提取所有从网页[R]

在这种情况下,UNIX时间是指11 2014年

as.POSIXlt (1399849199999/1000, tz = "GMT", origin = "1970-01-01") 

可我想检索所有可能的UNIX时间值特定月份。对于这里提供的网址,这6个值存储在网页源代码中,它看起来是这样的:

<select name="toDate" id="date" class="selectToSlider" widget="selectToSlider" labels="18" tooltip="false" wrapperClass="selectToSliderWrapper selectToSliderMatchDate"><optgroup label="results"><option value="1399157999999">SAT 03</option><option value="1399244399999">SUN 04</option><option value="1399330799999">MON 05</option><option value="1399417199999" selected="selected">TUE 06</option><option value="1399503599999">WED 07</option><option value="1399849199999">SUN 11</option></optgroup><optgroup label="fixtures"></optgroup></select> 

以前我用正则表达式来提取这些信息,但它是在颈部(痛** *),我想以更简单的方式做到这一点。

我明白,如果有人可以提供代码(可能与解释的步骤),可以提取这些值使用R中的一些网络抓包,最好是XML。我自己尝试过,但我没有成功...

回答

1

我们可以尝试使用XML封装解析从您提供的链接的HTML,然后提取使用XPath需要(出整个HTML)的具体信息:

library(XML) 
EPL.URL <- "http://www.premierleague.com/en-gb/matchday/league-table.html?season=2013-2014&month=MAY&timelineView=date&toDate=1399849199999&tableView=CURRENT_STANDINGS" 
EPL.doc <- htmlParse(EPL.URL) 
xpathSApply(EPLdoc, "//optgroup[@label='results']/option", xmlGetAttr, "value") 
+0

请你能解释一下“// optgroup [@ label ='results']/option”的含义是什么? –

+1

XPATH是一种从XML节点中提取信息的方法。在这里,我们需要访问属于_label =“results”_的_optgroup_节点的子节点的所有_option_节点。我认为使用''//选项''路径会给我们更多的需要。 欲了解更多信息,请尝试以下: http://www.w3schools.com/xsl/xpath_syntax.asp; https://www.w3.org/TR/xpath/; https://msdn.microsoft.com/en-us/library/ms256086(v=vs.110).aspx – zyurnaidi

1

rvest使这很容易。查找“选项”节点,然后获取“值”属性。

library("rvest") 
h <- read_html('<select name="toDate" id="date" class="selectToSlider" widget="selectToSlider" labels="18" tooltip="false" wrapperClass="selectToSliderWrapper selectToSliderMatchDate"><optgroup label="results"><option value="1399157999999">SAT 03</option><option value="1399244399999">SUN 04</option><option value="1399330799999">MON 05</option><option value="1399417199999" selected="selected">TUE 06</option><option value="1399503599999">WED 07</option><option value="1399849199999">SUN 11</option></optgroup><optgroup label="fixtures"></optgroup></select>') 
h %>% html_nodes("option") %>% html_attr("value") 
[1] "1399157999999" "1399244399999" "1399330799999" 
[4] "1399417199999" "1399503599999" "1399849199999" 
+0

如何这个工程如果h将是一个url字符串,而不是网页源代码的一部分? –