返回列表 上一主題 發帖

[發問] How to scrape this website dynamic data from Javascript with VBA?

本帖最後由 singo1232001 於 2022-11-19 21:17 編輯

回復 1# DanielWONG


Sub test2()
Set chrome = CreateObject("selenium.chromedriver")
chrome.get "https://www.hangseng.com/en-hk/personal/insurance-mpf/e-mpf/fund-price-performance/"
chrome.Wait 1000

Set A_s = chrome.FindElementsBytag("a")
    For i = 1100 To A_s.Count
     If A_s(i).Text = "Acknowledge" Then A_s(i).Click: Exit For
    Next


ReDim ar(1 To 1000, 1 To 1)
Set td_s = chrome.FindElementsBytag("td")
    For Each Z In td_s
        If Z.attribute("headers") = "price_header1" Then w = w + 1: ar(w, 1) = Z.Text
    Next
   
Cells.ClearContents
Cells(1, 1).Resize(w, 1) = ar
End Sub

TOP

本帖最後由 singo1232001 於 2022-11-20 16:34 編輯

回復 3# DanielWONG


    tag <a>的元素 印象有2000個以上

而我們要的大約在第1275個  

從1開始跑 要跑很久 才到1275 大概10~20秒(畢竟是每個物件打開檢查會久)

本來打算直接用 A_s(1275).click 最快

但又怕網站 可能1~1274中  某些元素有時候消失 或者增加

造成1275的位置會變化

所以抓個容許值 從1100繼續找 前面的1~1099 都直接忽略  除非網頁變化改很大 少一堆元素

這樣不會太慢 也有容錯空間

TOP

回復 3# DanielWONG

關於第二個圖片辨識的問題
網路上有查到的資料

有兩種做法
1.直接改用python 調用圖形辨識的功能 (較簡單)
甚至yt有影片直接教你
圖型辨識 跟 爬蟲都有   爬蟲一樣用selenium


2.用vba 爬蟲抓圖>在上傳到百度圖片辨識的api 找到你要的那段
但能否使用 尚未實際做過  要請高手

3.vba(shell)+python
也大致如上 把1跟2合起來玩出新花樣 較複雜

看有沒有高手大大會
或請高手幫忙
或找淘x

TOP

回復 3# DanielWONG


    很陽春的玩法 會有一定機率失效

  全看OCR 網站的效果

selenium v3 ocr圖片辨識_.zip (24.58 KB)

TOP

        靜思自在 : 是非當教育,讚美作警惕。
返回列表 上一主題