這次還是接續上一次的內容。
至於為什麼改了這個V2版本呢?
主要是由於一直刷新網頁的方式會讓GG的系統認為動作異常,
然後跳出不是機器人的驗證!(直接被抓包…TwT)
而要讓機器人通過這驗證的流程的話,
老實說有點複雜......
可能還得串到AI分析圖片再選,
或是弄個圖片資料庫之類的…
不然還是得用人工篩選比較快些
所以這次的V2是用非官方即時API的方式,
並降低了刷新的頻率,
讓機器人每15秒去取一次價就好......
API網址:
https://mis.twse.com.tw/stock/api/getStockInfo.jsp?ex_ch=tse_6869.tw
內容:
這API內容大致上就是一堆文字資訊
要改別支股票就把網址中的"股票代號"給改成想要的就可以了!
那改成API有什麼好處呢?
老實說,光是流程就少了不少啊!
而且還不用開瀏覽器,對於電腦資源占用也減少了!!
接下來就來看看流程吧:
主要變更部分:
1.刪除啟動Chrome瀏覽器
2.刪除區域Got Price(及子流程)
3.新增Got Price from API子流程
4.檢查股價的If中的變數修改
其他像是檢查日期部分則沒有變動!
主流程部分:
再做了上述 1 & 2項的刪除後,
於第10行呼叫子流程變更為 Got Price from API
Target區域內,If判斷式中的變數修改為NewVar3(出現在Got Price from API子流程中)
Got Price from API 子流程:
這個子流程是完全新的,也就是所有動作都要新增!
首先是"叫用Web服務"動作:
設定內容主要把剛才API的網址加入URL欄位內就好,
其他都不用設定!
然後要注意的是,
"叫用Web服務"動作會產生"三個變數",
而資料主要是存在"WebServiceResponse"中!
(另外兩個暫時用不到)
再來是新增"將JSON轉換為自訂物件"動作
因為那個API網頁中的那看起來劈哩啪啦很長一串的資訊,
其實是一種JSON的語法。
設定內容就是用"將JSON轉換為自訂物件"動作,
來取得"WebServiceResponse"變數的值
再設定一個變數,從取出JsonAsCustomObject變數中取出"股價"
至於API內容怎麼對應股價呢?
稍微看下那個API網頁內容,
其實不難看出股價就在"pz":後面:
所以值欄位中的
%JsonAsCustomObject['msgArray'][0]['pz']%
其實就是讓機器人去取"pz":後面的值
最後每15秒取價一次的部分
就設定一個"等待"就可以了!
20250430更新
補充 Jason 項目說明:
由於之前是在收盤後做的,
所以當時才直接去抓了'pz',
但在盤中執行時'pz'這個執會是"-"......
如果機器人一直抓到的是"-",
那麼流程就會出問題了...
所以就得要來改下流程,
經過一段時間的確認,
即時股價大概率是Jason中的 'a',(至少比'b'來得準確些)
也就項目說明中的"最低賣價"!
不過由於a是一串字串,
所以勢必得要轉清單在轉變數來做了!
因此流程大致變成下面這樣:
