2011-05-06 125 views
4

我想使用XML,RCurl包閱讀以下網址 http://www.nse-india.com/marketinfo/equities/cmquote.jsp?key=SBINEQN&symbol=SBIN&flag=0&series=EQ#提取HTML表格

這裏的一些HTML表格是我使用

library(RCurl) 
library(XML) 
options(RCurlOptions = list(useragent = "R")) 
url <- "http://www.nse-india.com/marketinfo/equities/cmquote.jsp?key=SBINEQN&symbol=SBIN&flag=0&series=EQ#" 
wp <- getURLContent(url) 
doc <- htmlParse(wp, asText = TRUE) 
docName(doc) <- url 
tmp <- readHTMLTable(doc) 
## Required tables 
tmp[[13]] 
tmp[[14]] 

代碼如果你看一下它無法解析網頁中的值。 我想這是由於一些javascipt評估在飛行中發生。 現在,如果我使用谷歌瀏覽器中的「保存頁面」選項(它不適用於mozilla) 並保存頁面,然後使用上面的代碼,我可以讀取值。

但是有沒有解決方法讓我可以讀取飛行表? 如果你能提供幫助,它將會很棒。

問候,

+0

http://stackoverflow.com/questions/1395528/scraping-html-tables-into-r-data-frames-using-the-xml-package duplicate? – 2011-05-06 17:19:40

+0

嗨布蘭登,我猜這不是,如果你運行我寫的代碼,你會看到我得到所需的表,但不是與字段相關的值,由於我猜的是一些javascipt問題 – 2011-05-06 17:35:23

+0

是的,我已經一直在玩它,我找不到任何以必要的方式下載頁面的東西。我唯一可以提出的建議是設置一個chron作業來下載類似wget的頁面,然後讓R指向下載的本地文件。 – 2011-05-19 05:00:42

回答

1

看起來像他們通過訪問http://www.nse-india.com/marketinfo/equities/ajaxGetQuote.jsp?symbol=SBIN&series=EQ並解析出一些字符串建設使用JavaScript的網頁。也許你可以抓住這些數據並解析出來,而不是抓取頁面本身。

看起來您必須使用cURL來創建具有正確的引用標頭的請求。正如你所看到的,你不能僅僅通過一個簡單的請求來打這個ajaxGetQuote頁面。

您可以通過在Chrome或Safari中使用Web Inspector或在Firefox中使用Firebug來讀取適當的標題。