返回列表 上一主題 發帖

[發問] 請教MSXML2.XMLHTTP和InternetExplorer的異同

[發問] 請教MSXML2.XMLHTTP和InternetExplorer的異同

各位好!小弟在這裡看到各位高手的CODE,終於略懂VBA的皮毛,提升日常工作的效率,謝謝大家。但
我對VBA很多地方仍然沒能掌握,希望大家能指教指教。
如果我的程序需要到網站找資料時,我會使用這兩組:
  1. XMLHTTP= CreateObject("MSXML2.XMLHTTP.6.0")
  2. XMLHTTP.Open "GET", URL


  3. objIE = CreateObject("InternetExplorer.Application")
  4. objIE.Navigate URL
複製代碼
依我理解,這兩組代碼是讀取該PAGE的HTML
但我對它們有很多疑問:

1) MSXML2.XMLHTTP.6.0 可以用POST 或GET ,前者需要我SEND DATA到網站作查詢,但
http://stock.finance.sina.com.cn/hkstock/finance/02317.html#a4
如果我想改變右面選擇欄的報表類型,是否可以用MSXML2.XMLHTTP.6.0 的POST & SEND的方法?但我沒有研究成功,只能用objIE = CreateObject("InternetExplorer.Application")去操作

2) CreateObject("MSXML2.XMLHTTP.6.0")是否可以完全取代CreateObject("InternetExplorer.Application")?有時候在LOOPING,IE會停止不動,有點麻煩。

3) 在使用CreateObject("InternetExplorer.Application")時,當我填寫了資料再按.Submit後,我會有一段代碼
  1. do until instr(.document.body.innerhtml,"XXX")>0
  2.         sleep 50
  3.         doevents
  4. loop
複製代碼
來判斷該頁面是否已完成讀取(我曾用readyState<>4,但好像失敗),如果當時網速不佳,excel會顯示沒有.document.body.innerhtml的OBJECT(類似的字眼),我需要RERUN代碼才能繼續。即使我用:do until not .document.body.innerhtml is nothing t也會出現ERROR....


4) 我想用這兩組代碼讀取這網站的報價資料,但兩個都不成功,看了讀回來的HTML CODE,股價資料是空的,但我直接看這個網站時,它的HTML CODE是包括報價資料。處理這些網站時有沒有特別的處理技巧?
http://www.etnet.com.hk/www/tc/stocks/realtime/quote.php?code=2317

回復  小俠客
1、你是用這個連結測試嗎?
最後的financeStatus是報表類型。all是全部、zero是年報、1是中 ...
zyzzyva 發表於 2016-8-24 22:31


關於問題1:我不是啦,我沒能研究到這個連結,我是直接用MSXML2.XMLHTTP.6.0到 http://stock.finance.sina.com.cn/hkstock/finance/02317.html#a4
但我不懂如何用POST AND SEND 的方法改動financeStatus的選項,所以我暫時是用CREATEOBJECT("InternetExplorer.Application"),再改動financeStatus 的OBJECT去獲得新數據。
大大很利害,可否教教我如何去得到這個連結?謝謝

關於問題4:現在我處理方法是,CREATEOBJECT("InternetExplorer.Application"),到該網站,重新輸入CODE再SUBMIT,令HTML包含到資料,不過我覺得這個方法有點蠢......

TOP

回復 4# zyzzyva


    原來有這樣的工具,謝謝你的指教

TOP

        靜思自在 : 自己害自己,莫過於亂發脾氣。
返回列表 上一主題