98 lines
4.8 KiB
QBasic
98 lines
4.8 KiB
QBasic
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() }")
|
|
|
|
' Earnings_per_Share # ??????
|
|
fetch_result(IDX_EARNINGS_PER_SHARE)= "earnings_per_share is missing"
|
|
|
|
' 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')[0].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')[1].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 |