2016-05-09 65 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字符串,而不是網頁源代碼的一部分? –