這次還是接續上一次的內容。

 

至於為什麼改了這個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是一串字串,

所以勢必得要轉清單在轉變數來做了!

因此流程大致變成下面這樣:

 

文章標籤
全站熱搜
創作者介紹
創作者 PIZZ不是PIZZA啦 的頭像
PIZZ不是PIZZA啦

PIZZ不是PIZZA的IT(挨踢)人生

PIZZ不是PIZZA啦 發表在 痞客邦 留言(0) 人氣(27)