update,
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
Attribute VB_Name = "FetchAaStock"
|
||||
|
||||
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.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
|
||||
' ' driver.ExecuteScript "alert('helloworld')"
|
||||
driver.ExecuteScript "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
|
||||
|
||||
|
||||
' ' driver.Get "http://localhost:8080/navigator_webdriver_test.html"
|
||||
' ' https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html
|
||||
' driver.Get "https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html"
|
||||
|
||||
' driver.ExecuteScript "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
|
||||
|
||||
driver.Get "http://www.aastocks.com"
|
||||
' driver.ExecuteScript "console.log('hello excel')"
|
||||
driver.ExecuteScript "document.querySelector('#sb-txtSymbol-aa').value = '" & stock_num & "'"
|
||||
driver.ExecuteScript "document.querySelector('#sb-btnSubmit').click()"
|
||||
driver.ExecuteScript "document.querySelectorAll('span.float_l')[6].click()"
|
||||
|
||||
Debug.Print driver.ExecuteScript("{ return 'helloworld from chrome' }")
|
||||
|
||||
' stock_Name # Name
|
||||
fetch_result(IDX_STOCK_NAME) = driver.ExecuteScript("{ return document.querySelector('#SQ_Name').textContent.trim() }")
|
||||
|
||||
' stock_Price # Price
|
||||
fetch_result(IDX_STOCK_PRICE) = driver.ExecuteScript("{ return document.querySelector('#labelLast').textContent.trim() }")
|
||||
|
||||
' 10_day_Moving_Average # 10????
|
||||
fetch_result(IDX_10_DAY_MOVING_AVERAGE) = driver.ExecuteScript("{ return document.querySelectorAll('.content.comm-panel.dq-panel')[1].querySelectorAll('tr')[1].querySelectorAll('td')[1].textContent.trim() }")
|
||||
|
||||
' 20_day_Moving_Average # 20????
|
||||
fetch_result(IDX_20_DAY_MOVING_AVERAGE) = "20_day_Moving_Average missing"
|
||||
|
||||
' 50_day_Moving_Average # 50????
|
||||
fetch_result(IDX_50_DAY_MOVING_AVERAGE) = driver.ExecuteScript("{ return document.querySelectorAll('.content.comm-panel.dq-panel')[1].querySelectorAll('tr')[2].querySelectorAll('td')[1].textContent.trim() }")
|
||||
|
||||
' 100_day_Moving_Average # 100????
|
||||
fetch_result(IDX_100_DAY_MOVING_AVERAGE) = driver.ExecuteScript("{ return document.querySelectorAll('.content.comm-panel.dq-panel')[1].querySelectorAll('tr')[3].querySelectorAll('td')[1].textContent.trim() }")
|
||||
|
||||
' 250_day_Moving_Average # 250????
|
||||
fetch_result(IDX_250_DAY_MOVING_AVERAGE) = driver.ExecuteScript("{ return document.querySelectorAll('.content.comm-panel.dq-panel')[1].querySelectorAll('tr')[4].querySelectorAll('td')[1].textContent.trim() }")
|
||||
|
||||
' P_E_Ratio_Expected # ???/??
|
||||
fetch_result(IDX_P_E_RATIO_EXPECTED) = driver.ExecuteScript("{ return document.querySelectorAll('#tbPERatio div')[5].textContent.trim() }")
|
||||
|
||||
' Yield # ???
|
||||
fetch_result(IDX_YIELD) = driver.ExecuteScript("{ return document.querySelectorAll('.quote-box div')[19].textContent.trim() }")
|
||||
|
||||
' Fund_Flow # ????
|
||||
fetch_result(IDX_FUND_FLOW) = driver.ExecuteScript("{ return document.querySelectorAll('.quote-box div')[29].textContent.trim() }")
|
||||
|
||||
' Short_Selling_Amount_Ratio_% # ???_??(%)
|
||||
fetch_result(IDX_SHORT_SELLING_AMOUNT_RATIO_) = driver.ExecuteScript("{ return document.querySelectorAll('.quote-box div')[4].textContent.trim() }")
|
||||
|
||||
' RSI_10 # RSI 10
|
||||
fetch_result(IDX_RSI_10) = driver.ExecuteScript("{ return document.querySelectorAll('.content.comm-panel')[7].querySelectorAll('table')[0].querySelectorAll('tr')[0].querySelector('.txt_r').textContent.trim() }")
|
||||
|
||||
' RSI_14 # RSI 14
|
||||
fetch_result(IDX_RSI_14) = driver.ExecuteScript("{ return document.querySelectorAll('.content.comm-panel')[7].querySelectorAll('table')[0].querySelectorAll('tr')[1].querySelector('.txt_r').textContent.trim() }")
|
||||
|
||||
' RSI_20 # RSI 20
|
||||
fetch_result(IDX_RSI_20) = driver.ExecuteScript("{ return document.querySelectorAll('.content.comm-panel')[7].querySelectorAll('table')[0].querySelectorAll('tr')[2].querySelector('.txt_r').textContent.trim() }")
|
||||
|
||||
' MACD_8_17_days # MACD(8_17 ?)
|
||||
fetch_result(IDX_MACD_8_17_DAYS) = driver.ExecuteScript("{ return document.querySelectorAll('.content.comm-panel')[7].querySelectorAll('table')[0].querySelectorAll('tr')[2].querySelector('.txt_r').textContent.trim() }")
|
||||
|
||||
' MACD_12_25_days # MACD(12/25 ?)
|
||||
fetch_result(IDX_MACD_12_25_DAYS) = driver.ExecuteScript("{ return document.querySelectorAll('.content.comm-panel')[7].querySelectorAll('table')[0].querySelectorAll('tr')[3].querySelector('.txt_r').textContent.trim() }")
|
||||
|
||||
' Application.Wait Now + TimeValue("00:30:01")
|
||||
driver.Quit
|
||||
|
||||
run = fetch_result
|
||||
Done:
|
||||
' Debug.Print "hello done"
|
||||
Exit Function
|
||||
|
||||
eh:
|
||||
Debug.Print "hello error"
|
||||
|
||||
End Function
|
Reference in New Issue
Block a user