標題:
已可抓取K線資料,但欠缺量有人可以協助一下? JSON
[打印本頁]
作者:
vavashop
時間:
2016-8-22 11:47
標題:
已可抓取K線資料,但欠缺量有人可以協助一下? JSON
各位大大好
小弟有一個檔案
已經可以抓歷史資料
但這個JSON的應用
我不太懂
不知道有好心的大大可以協助一下嗎?
只需要用原本的網址
因為他盤中才會有資料進去
有需要的大大們也可以自行取用此檔案
[attach]24996[/attach]
作者:
jackyq
時間:
2016-8-23 19:57
日k技術分析線圖
右上角有一各 日k完整線圖
你用那個 url 裡面的 json 會有 Volume
作者:
GBKEE
時間:
2016-8-24 09:01
本帖最後由 GBKEE 於 2016-8-24 09:06 編輯
回復
1#
vavashop
修改附檔中 fnLoadFileAndParse 直接讀取資料
可不需再用物件類別模組中的clsJSParse
Sub fnLoadFileAndParse(ByVal StockNo As String, ByVal DataType As String)
Dim xmlHttp As Object
Dim Readstr As Variant, Ar As Variant, xAr(), i As Integer, T As Date
T = Time
Set xmlHttp = CreateObject("MSXML2.XMLHTTP.6.0")
If DataType = "Week" Then
xmlHttp.Open "GET", "http://www.wantgoo.com/Stock/%E5%80%8B%E8%82%A1%E7%B7%9A%E5%9C%96/%E6%8A%80%E8%A1%93%E7%B7%9A%E5%9C%96%E8%B3%87%E6%96%99?StockNo=" & StockNo & "&Kcounts=245&Type=%E5%91%A8K_K%E7%B7%9A%7C%E5%91%A8K_%E6%BC%B2%E8%B7%8C%E8%B3%87%E6%96%99%7C%E5%91%A8K_%E6%88%90%E4%BA%A4%E9%87%8F%7C%E5%91%A8K_KD%7C%E5%91%A8K_RSI%7C%E5%91%A8K_MACD%7C%E5%91%A8K_%E5%8A%A0%E6%AC%8A%E6%8C%87%E6%95%B8%7C%E5%91%A8K_DMI&isCleanCache=false", False
ElseIf DataType = "Day" Then
xmlHttp.Open "GET", "http://www.wantgoo.com/Stock/%E5%80%8B%E8%82%A1%E7%B7%9A%E5%9C%96/%E6%8A%80%E8%A1%93%E7%B7%9A%E5%9C%96%E8%B3%87%E6%96%99?StockNo=" & StockNo & "&Kcounts=245&Type=%E6%97%A5K_K%E7%B7%9A%7C%E6%97%A5K_%E6%BC%B2%E8%B7%8C%E8%B3%87%E6%96%99%7C%E6%97%A5K_%E6%88%90%E4%BA%A4%E9%87%8F%7C%E6%97%A5K_KD%7C%E6%97%A5K_RSI%7C%E6%97%A5K_MACD%7C%E6%97%A5K_%E5%91%A8%E8%BD%89%E7%8E%87%7C%E6%97%A5K_William%7C%E6%97%A5K_%E5%8A%A0%E6%AC%8A%E6%8C%87%E6%95%B8%7C%E6%97%A5K_DMI&isCleanCache=false", False
Else
Exit Sub
End If
xmlHttp.setRequestHeader "Content-Type", "text/html; charset=utf-8"
xmlHttp.send
Readstr = xmlHttp.responseText
'************* 'responseText 檔案的本文
'Mid 函數 從一字串傳回特定數量字元所構成的Variant (String)
'InStr 函數 傳回在某字串中一字串的最先出現位置,此位置為 Variant (Long)。
'Split 函數 傳回一個陳列索引從零開始的一維陣列,它包含指定數目的子字串。
'Replace 函數 傳回一個字串,該字串中指定的子字串已被取代成另一子字串,並且取代發生的次數也是指定的。
'******************************************
'***擷取所要的文字
If DataType = "Week" Then
Readstr = Mid(Readstr, InStr(Readstr, "W = [{x:") + Len("D = [{x:"))
Readstr = Split(Readstr, "}];var Close_W =")(0)
Else
Readstr = Mid(Readstr, InStr(Readstr, "D = [{x:") + Len("D = [{x:"))
Readstr = Split(Readstr, "}];var Close_D =")(0)
End If
'***踢除不要的文字
Readstr = Replace(Readstr, "open:", "")
Readstr = Replace(Readstr, "high:", "")
Readstr = Replace(Readstr, "low:", "")
Readstr = Replace(Readstr, "close:", "")
'*** 以 "},{x:" 將文字分割為陣列
Readstr = Split(Readstr, "},{x:")
ReDim xAr(UBound(Readstr)) '重置一陣列的維數
For i = 0 To UBound(Readstr)
Ar = Split(Readstr(i), ",")
Ar(0) = DateAdd("s", Mid(Ar(0), 1, 10), CDbl(DateSerial(1970, 1, 1))) '*** 字串轉為日期
xAr(i) = Ar '***整理好的資料放在陣列
Next
With Sheet2
.UsedRange.Offset(1).ClearContents '清除之前記錄的資料
.Range("A2").Resize(UBound(xAr) + 1, UBound(Ar) + 1) = Application.Transpose(Application.Transpose(xAr)) '陣列資料的讀取
End With
'MsgBox Application.Text(Time - T, ["S秒"]) '測試程式運行的速度
End Sub
複製代碼
作者:
c_c_lai
時間:
2016-8-24 10:49
回復
3#
GBKEE
程式碼精簡許多了,目前雖已可抓取K線資料,
但尚欠缺量,不知是否可以抓取到?
而將它順便加入到 F 欄內?
閒著閒著便上網看了一下,謝謝您囉!
作者:
c_c_lai
時間:
2016-8-24 11:48
回復
3#
GBKEE
裡面好像找不到 Volume
' Readstr : "{"code":"0","message":"","returnValues":{"value":"<script>var
' candlestickData_D = [{x:1440547200000,open:59.3,high:60.5,low:58.65,close:60.35},
' {x:1440633600000,open:60.6,high:6
' Readstr : "1440547200000,59.3,60.5,58.65,60.35},{x:1440633600000,60.6,60.65,60,60.15},
' {x:1440720000000,61,61.9,61,61.8},{x:1440979200000,61.3,62.35,61.2,62.3},
' {x:1441065600000,61.9,62.6,6
' ---------------------------------------------------------------------------------------
' Readstr : : Variant/String(0 to 244)
' Readstr(0) : "1440547200000,59.3,60.5,58.65,60.35" : String
' Readstr(1) : "1440633600000,60.6,60.65,60,60.15" : String
' Readstr(2) : "1440720000000,61,61.9,61,61.8" : String
' Readstr(242) : "1471824000000,69,69.15,68.45,68.7" : String
' Readstr(243) : "1471910400000,68.9,69.6,68.9,69.4" : String
' Readstr(244) : "1471996800000,69.35,69.55,69.2,69.4" : String
作者:
GBKEE
時間:
2016-8-24 11:51
本帖最後由 GBKEE 於 2016-8-24 11:52 編輯
回復
4#
c_c_lai
週線 Readstr = xmlHttp.responseText
裡有"</script><script>var TAIEXcandlestickData_W = [" 試看看
作者:
小俠客
時間:
2016-8-24 13:47
是指把
Readstr = Split(Readstr, "}];var Close_W =")(0)
改成
Readstr = Split(Readstr, "</script><script>var TAIEXcandlestickData_W = [" )(0)
好像不行
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)