inspireme543 wrote:
1) Chrome + 開啟 Javascript
- 網頁:A區 的內容有顯示
- 網頁原始碼 ( view-source:https...),並沒有看到 A區 相關的內容
inspireme543 wrote:
3) 使用 Chrome 的開發人員工具 -> Network -> Fetch / XHR
- Reload 頁面,發現 eqc.js。
- 故意 Block eqc.js 會造成 A區內容不顯示。
- 但是,Preview eqp.js 並非 json 之類的資料,也看不到跟 A 區相關的內容
- 找不到 A區的主要封包...
資料就在網頁原始碼裡面,是json格式,找不到是因為那是未計算的原始資料
要處理需先拆出來,可參考1102樓

inspireme543 wrote:
2) Chrome + 關掉 Javascript
- 網頁:A區 的內容沒有顯示
- 應該是由 js 另外產生 A區內容
是的,但我不知道json裡面的項目,分別是代表那個資料
散戶、大戶,是計算出來的,我也不知道是用那個去加加減減
只知道e10=總張數
Sub get_agdstock()
Dim Xmlhttp As Object, Jsondata As Object, DecodeJson, temp, URL As String, ttt As Double
Set Jsondata = CreateObject("HtmlFile")
Set Xmlhttp = CreateObject("WinHttp.WinHttpRequest.5.1")
ttt = Timer
URL = "https://agdstock.club/eqc/2330-台積電"
With Xmlhttp
.Open "GET", URL, False
.setRequestHeader "Cache-Control", "no-cache"
.setRequestHeader "Pragma", "no-cache"
.setRequestHeader "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"
.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
.send
Set DecodeJson = Jsondata.JsonParse(Split(Split(.responsetext, "eqData = JSON.parse('")(1), "');" & Chr(10) & " const eqcDom")(0))
End With
Set temp = CallByName(DecodeJson, "2022-11-25", VbGet)
MsgBox Round(CallByName(temp, "e10", VbGet) / 1000, 0) & "張"
Debug.Print Timer - ttt
Set Xmlhttp = Nothing
Set Jsondata = Nothing
Set DecodeJson = Nothing
Set temp = Nothing
End Sub
json處理方式,除了一個一個用callbyname取出之外
也可以參考1168樓、1171樓,全部取出的方式
'原始碼裡面,還有另一份股票代號+名稱的json資料
………
………
………
Set DecodeJson = Jsondata.JsonParse(Split(Split(.responsetext, "var src = JSON.parse('")(1), "');" & Chr(10))(0))
………
………
………