2013-04-18 56 views
0

我想webscrape選項表的表:R:webscraping不顯示任何數據

http://www.cmegroup.com/trading/metals/base/copper_quotes_settlements_options.html

我想:

library(XML) 
options.cu<-readHTMLTable("http://www.cmegroup.com/trading/metals/base/copper_quotes_settlements_options.html",stringsAsFactors = FALSE) 
options.cu 

但我只是得到:

$ table_under_bluebar V1 V2 V3 1交易日期類型過期

並且沒有來自表格的數據。 我會很感激你的幫助。

回答

1

此表使用javascript動態創建。您可以檢查流量以查看是否可以找到供稿。這樣做,你會注意到以下網址:

http://www.cmegroup.com/CmeWS/mvc/xsltTransformer.do?xlstDoc=/XSLT/da/DailySettlement.xsl 

這需要一個URL作爲其代表產品線或這樣的參數。例如:

http://www.cmegroup.com/CmeWS/mvc/xsltTransformer.do?xlstDoc=/XSLT/da/DailySettlement.xsl&url=/da/DailySettlement/V1/DSReport/ProductCode/HX/FOI/OOF/EXCHANGE/XCEC/Underlying/HG/ProductId/797 

會得到對銅的選項表,該表可能有產品編號797其他參數可以通過指定參數補充說:

http://www.cmegroup.com/CmeWS/mvc/xsltTransformer.do?xlstDoc=/XSLT/da/DailySettlement.xsl&url=/da/DailySettlement/V1/DSReport/ProductCode/HX/FOI/OOF/EXCHANGE/XCEC/Underlying/HG/ProductId/797?tradeDate=04/17/2013&monthYear=null&optionTypeName=Daily&optionType=AME 

您應該能夠使用這種飼料獲得相關數據:

xmlD <- "http://www.cmegroup.com/CmeWS/mvc/xsltTransformer.do?xlstDoc=/XSLT/da/DailySettlement.xsl&url=/da/DailySettlement/V1/DSReport/ProductCode/HX/FOI/OOF/EXCHANGE/XCEC/Underlying/HG/ProductId/797" 

library(XML) 
options.cu <- readHTMLTable(xmlD,stringsAsFactors = FALSE) 
str(options.cu) 
#List of 1 
# $ DailySettlementTable:'data.frame': 337 obs. of 10 variables: 
# ..$ V1 : chr [1:337] "Daily Settlements for Copper American Options (FINAL)Trade Date: 04/18/2013" "Strike" "025" "050" ... 
# ..$ V2 : chr [1:337] NA "Type" "Call" "Call" ... 
# ..$ V3 : chr [1:337] NA "Open" "-" "-" ... 
# ..$ V4 : chr [1:337] NA "High" "-" "-" ... 
# ..$ V5 : chr [1:337] NA "Low" "-" "-" ... 
# ..$ V6 : chr [1:337] NA "Last" "-" "-" ... 
# ..$ V7 : chr [1:337] NA "Change" "+.0170" "+.0170" ... 
# ..$ V8 : chr [1:337] NA "Settle" "2.9545" "2.7045" ... 
# ..$ V9 : chr [1:337] NA "EstimatedVolume" "-" "-" ... 
# ..$ V10: chr [1:337] NA "Prior DayOpen Interest" "-" "-" ... 
+0

這很好。非常感謝您的幫助。 –