發文後,請檢查文章內容,因語法關係,有時候內容會不完整
內容看不懂,我就不會回答
goldchiou wrote:
"https://www.wantgoo.com/stock/astock/agentstat2?stockno=8069"
goldchiou wrote:
跑出來只有 日期 收盤價 買賣超 家數差 5日集中 20日集中
wantgoo 只有第一列是表格,其它內容都是json格式,用表格會無法下載
json相關範例請從 2017-07-05 219樓,開始往後看
寫法類似274樓
Sub Get_Wantgoo_maintrend_Jsondata()
Dim Xmlhttp As Object, Jsondata As Object, DecodeJson, Url As String, Urla As String, ttt As Double
Set Jsondata = CreateObject("HtmlFile")
Jsondata.write ”<script>document.JsonParse=function (s) {return eval(’(’ + s + ’)’);}</script>”
'jsondata.write 這行是全形字,請自行改成半形,或直接用檔案中的程式碼
Sheets("工作表1").Cells.Clear
Sheets("工作表1").Range("a1:f1") = Array("date", "close", "stockAgentMainPower", "stockAgentDiff", "skp5", "skp20")
ttt = Timer
Url = "https://www.wantgoo.com/stock/8069/major-investors/main-trend-data"
Urla = "https://www.wantgoo.com/stock/8069/major-investors/main-trend"
Set Xmlhttp = CreateObject("msxml2.xmlhttp")
With Xmlhttp
.Open "GET", Url, False
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
.setRequestHeader "Referer", Urla
.send
Set DecodeJson = Jsondata.JsonParse(.responsetext)
End With
With Sheets("工作表1")
Application.ScreenUpdating = False
For i = 0 To CallByName(DecodeJson, "length", VbGet) - 1
.Cells(i + 2, 1) = Left(CallByName(CallByName(DecodeJson, i, VbGet), "date", VbGet), 10)
.Cells(i + 2, 2) = CallByName(CallByName(DecodeJson, i, VbGet), "close", VbGet)
.Cells(i + 2, 3) = CallByName(CallByName(DecodeJson, i, VbGet), "stockAgentMainPower", VbGet)
.Cells(i + 2, 4) = CallByName(CallByName(DecodeJson, i, VbGet), "stockAgentDiff", VbGet)
.Cells(i + 2, 5) = CallByName(CallByName(DecodeJson, i, VbGet), "skp5", VbGet)
.Cells(i + 2, 6) = CallByName(CallByName(DecodeJson, i, VbGet), "skp20", VbGet)
Next i
.Cells.EntireColumn.AutoFit
Application.ScreenUpdating = True
End With
MsgBox "(" & Left(CallByName(CallByName(DecodeJson, i - 1, VbGet), "date", VbGet), 10) & _
")~(" & Left(CallByName(CallByName(DecodeJson, 0, VbGet), "date", VbGet), 10) & ")" & _
vbNewLine & CallByName(DecodeJson, "length", VbGet) & "筆" & vbNewLine & Timer - ttt & "秒"
Set Xmlhttp = Nothing
Set DecodeJson = Nothing
End Sub
[點擊下載]