天天看點

R語言rcurl抓取問财财經搜尋網頁股票資料

問财财經搜尋是同花順旗下的服務之一,主要針對上市公司的公告、研報、即時新聞等提供搜尋及參考資料。相對于其他股票軟體來說,一個強大之處在于用自然語言就可以按你指定的條件進行篩選。而大部分現有的行情軟體支援的都不是很好,寫起來就費盡心思,還不一定能行。

R語言rcurl抓取問财财經搜尋網頁股票資料

然而問财有一個缺陷在于它隻能擷取一天的股票相關資訊。如果,我們希望實作抓取一段時間的股票曆史資訊,就要通過網頁批量抓取。

事實上,我們可以通過制作一個爬蟲軟體來自己定義時間日期和搜尋的關鍵詞,并且批量下載下傳一定日期範圍的資料。

我們以抓取每天的收盤價大于均線上股票數目為例子,用r來實作抓取:

例如需要擷取10月12日的資料,在問财裡輸入下面的關鍵詞即可

R語言rcurl抓取問财财經搜尋網頁股票資料
檢視搜尋結果連結,我們可以看到關鍵詞在連結中的顯示規則
R語言rcurl抓取問财财經搜尋網頁股票資料
是以,我們在r中可以通過制作一個時間段的僞連結來向伺服器不斷發送搜尋請求,進而實作一段日期資料的批量抓取

url=paste("http://www.iwencai.com/stockpick/search?typed=1&preParams=&ts=1&f=1&qs=result_rewrite&selfsectsn=&querytype=&searchfilter=&tid=stockpick&w=",as.character(as.Date(i, origin = "1970-01-01")) ,input2)                

然後,我們檢視其中一天的網頁源代碼,可以找到對應股票資料的xml源碼

R語言rcurl抓取問财财經搜尋網頁股票資料

是以,可以通過編寫一個html_value 函數來擷取這個xmlValue

xpath <- '//div[@class=\"natl_words long_words\"]/span[@class=\"natl_num\"]'

html_value <- function(url,xpath){

webpage <- getURL(url)

webpage <- readLines(tc <- textConnection(webpage)); close(tc)

pagetree <- htmlTreeParse(webpage, error=function(...){}, useInternalNodes = TRUE)

value <- getNodeSet(pagetree,xpath)
##i <- length(value)##統計滿足條件的值個數,一般情況為1

# value1 <- xmlValue(value[[ 1]])

# value2 <- xmlValue(value[[ 2]])

# value3 <- xmlValue(value[[ 3]])

# value4 <- xmlValue(value[[ 4]])

value1=character(0)

for(i in 1:length(value))value1[i] <- xmlValue(value[[ i]])

return(value1)

}                

然後封裝成一個函數,就可以任意下載下傳一段時間内幾個關鍵詞所對應的股票資料了。

R語言rcurl抓取問财财經搜尋網頁股票資料

最後可以将爬取到的資料批量輸出到一個excel檔案中,進而友善後續的分析。

R語言rcurl抓取問财财經搜尋網頁股票資料

參考文獻

1.用機器學習識别不斷變化的股市狀況—隐馬爾科夫模型(HMM)的應用

2.R語言GARCH-DCC模型和DCC(MVT)模組化估計

3.R語言實作 Copula 算法模組化依賴性案例分析報告

4.R語言COPULAS和金融時間序列資料VaR分析

5.R語言多元COPULA GARCH 模型時間序列預測

6.用R語言實作神經網絡預測股票執行個體

繼續閱讀