This commit is contained in:
louiscklaw
2025-01-31 19:27:58 +08:00
parent 9476a736d3
commit ce9a4aa9b3
313 changed files with 6340 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
Attribute VB_Name = "FetchEtnet"
Function run(stock_num As Integer)
' On Error GoTo eh
Dim fetch_result(0 To 22) As String
Dim driver As New ChromeDriver
driver.SetBinary ChromiumBinaryPath
driver.AddArgument "--disable-blink-features=AutomationControlled"
driver.Start
driver.ExecuteScript "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
driver.Get "https://www.etnet.com.hk/www/tc/stocks/realtime/quote.php"
driver.ExecuteScript "document.querySelector('#quotesearch').value = '" & stock_num & "'"
driver.ExecuteScript "document.querySelector('#quotesearch_submit').click()"
'driver.ExecuteScript "document.querySelectorAll('span.float_l')[6].click()"
driver.FindElementByCss "#StkList", 30
' 10_day_Moving_Average # 10????
fetch_result(IDX_10_DAY_MOVING_AVERAGE) = driver.ExecuteScript("{ return document.querySelector('#StkList').querySelectorAll('li.value')[1].textContent.trim() }")
' 20_day_Moving_Average # 20????
fetch_result(IDX_20_DAY_MOVING_AVERAGE) = driver.ExecuteScript("{ return document.querySelector('#StkList').querySelectorAll('li.value')[3].textContent.trim() }")
' 50_day_Moving_Average # 50????
fetch_result(IDX_50_DAY_MOVING_AVERAGE) = driver.ExecuteScript("{ return document.querySelector('#StkList').querySelectorAll('li.value')[5].textContent.trim() }")
' 100_day_Moving_Average # 100????
fetch_result(IDX_100_DAY_MOVING_AVERAGE) = driver.ExecuteScript("{ return document.querySelector('#StkList').querySelectorAll('li.value')[7].textContent.trim() }")
' 250_day_Moving_Average # 250????
fetch_result(IDX_250_DAY_MOVING_AVERAGE) = driver.ExecuteScript("{ return document.querySelector('#StkList').querySelectorAll('li.value')[9].textContent.trim() }")
' Earnings_per_Share # ??????
fetch_result(IDX_EARNINGS_PER_SHARE) = driver.ExecuteScript("{ return document.querySelector('#StkList').querySelectorAll('li.value')[26].textContent.trim() }")
' Application.Wait Now + TimeValue("00:00:5")
run = fetch_result
Done:
' Debug.Print "hello done"
Exit Function
eh:
Debug.Print "hello error"
End Function