返回列表 上一主題 發帖

[發問] 用Selenium 抓上市行情即時資料 ???

回復 35# singo1232001


    此檔 seleniumdownload v9.zip->seleniumdownload v9.xlsm
   被 windows defender 檢出威脅 Trojan:O97M/Sadoca.C!ml
    請確認。

    謝謝

TOP

本帖最後由 t8899 於 2022-10-28 21:13 編輯
回復  t8899


用bytag 而且這網頁我之前玩過

另外就是上面提到的 這網頁後面不會一次跑出來
只能用 ...
singo1232001 發表於 2022-10-28 18:32

Sub kimo()
Application.ScreenUpdating = False
Set DRIVER = CreateObject("Selenium.ChromeDriver")
DRIVER.AddArgument ("headless") '無頭視窗
DRIVER.Get "https://tw.stock.yahoo.com/class-quote?sectorId=2&exchange=TAI"
Set dd = DRIVER.FindElementByXPath("//*[@id=""main-1-ClassQuotesTable-Proxy""]/div/div[3]/div/div/div[2]")
Range("a:K").Clearcontents
Range("a1:k1") = Array("股票名稱", "代號", "股價", "漲跌", "漲跌幅(%)", "開盤", "昨收", "最高", "最低", "成交量(張)", "時間")
a = split(dd.Text, Chr(10))
b = UBound(a)
   k = 11
   s = 2
   g = 1
For i = 0 To b
     If i = k Then
     k = k + 11
     s = s + 1
     g = 1
        End If
     Cells(s, g) = a(i)
    g = g + 1
    Next
End Sub
table 輸出較快?可惜它不是table
跌的下三角形沒抓到?如何直接改成"-"號輸出?

TOP

本帖最後由 singo1232001 於 2022-10-28 18:42 編輯

回復 42# t8899


用bytag 而且這網頁我之前玩過

另外就是上面提到的 這網頁後面不會一次跑出來
只能用tag 跟畫面移動控制 來讓後面的跑出來
他的項目不是一般table 而是用class跑出來

需要用 find..s..tag+判斷+迴圈+等待 存在來逐步向內找更內層的元素 有點莫名的像是檔案總管一直開子資料夾那樣


檔案是5.6月左右寫得,能不能動 我不太清楚 也沒去修改

網頁爬蟲v1.zip (52 KB)

TOP

回復  t8899


    這網站api好像有2種限制

1種是次數限制  我用兩支股票 手動複製網址 大概連續秒查 ...
singo1232001 發表於 2022-10-25 17:47

這個網站限制太多,最主要成交價八成是空的,只能看5檔裡的第一個買賣2選一無法確定實際成交價,只好捨棄

https://tw.stock.yahoo.com/class ... =2&exchange=TAI
這看起來是一個table? 我用 FindElementByXPath 找不到它的路徑?

TOP

回復  t8899


    這網站api好像有2種限制

1種是次數限制  我用兩支股票 手動複製網址 大概連續秒查 ...
singo1232001 發表於 2022-10-25 17:47

我又測了一下,網站5秒更一次 沒問題 (用1隻測)
我測99隻測第二次就會出現錯誤 ?很明顯有限制查的數量

TOP

本帖最後由 t8899 於 2022-10-25 19:30 編輯
回復  t8899


    這網站api好像有2種限制

1種是次數限制  我用兩支股票 手動複製網址 大概連續秒查 ...
singo1232001 發表於 2022-10-25 17:47

我發現這網站並沒有5秒更新一次,多少秒不太確定,應該不會低於30秒,所以設10秒抓一次,啟動後抓第2次,儲存格的值是不會動的
如何得知?
我是用台積電測,因為這種熱門股每秒都在搓合成交(從證商app的個股走勢明細可看出),看抓下來的v總量的值有沒有增加,就知道了
一次只能查166隻?這是quickfixer兄測的
還有詢問證交所 ===>盤中即時行情裡的成交價幾乎都是 "-"這個符號 ? 他的回答如下圖

TOP

回復 38# t8899


    這網站api好像有2種限制

1種是次數限制  我用兩支股票 手動複製網址 大概連續秒查30次(不到一分鐘) 就被踢
1種是數量限制  940隻(6~7次) 可能要40秒才能做一次  懷疑是 一分鐘限制查8次 或者 一分鐘內 限制不能超過1000隻 (會累計扣掉剩餘用量)

TOP

回復  t8899


    xmlhttp,940支版,我是用120一組,140用在xml偶爾會失敗

可是有缺點,2327、1316,這 ...
quickfixer 發表於 2022-10-25 02:35

2327、1316 這兩隻我查了一下,昨天是沒成交的,所以算正常
一次只能連167 隻,這個就沒辦法,網站的限制,一次連續連太多次會被鎖ip,這點我會注意,謝謝

TOP

本帖最後由 quickfixer 於 2022-10-25 02:43 編輯

回復 31# t8899


    xmlhttp,940支版,我是用120一組,140用在xml偶爾會失敗
twbts(v2).zip (146.85 KB)
可是有缺點,2327、1316,這2支全空白的
xmlhttp不會回傳資料(如下圖),msgarray直接空白,連股號都沒有
所以跟Selenium比起來會少2支,一樣查詢太快會擋ip,測試時被擋好幾次
我是覺的啦,要一直抓即時資料,改用股票軟體的dde會比較好

TOP

回復  singo1232001


    再優化一下
singo1232001 發表於 2022-10-24 14:50

辛苦了,感謝

TOP

        靜思自在 : 虛空有盡.我願無窮,發願容易行願難。
返回列表 上一主題