Fw: [算表] 為何抓網路多筆資料會常常失敗

看板Visual_Basic作者 (伊布)時間6年前 (2018/09/23 15:03), 6年前編輯推噓0(0014)
留言14則, 3人參與, 6年前最新討論串1/1
※ [本文轉錄自 Office 看板 #1Rfpgif3 ] 作者: Ibrahimovic (伊布) 看板: Office 標題: [算表] 為何抓網路多筆資料會常常失敗 時間: Sun Sep 23 15:03:06 2018 軟體: Excel 版本: 2016 時常用VBA在抓網路資料,一直都有個疑惑 如果只抓少數幾筆資料,例如3筆,通常VBA寫完,F5按下去,都會成功 可是如果是要抓很多筆,例如100筆,通常就會在下載階段時掛掉,出現沒有反應 而在這下載失敗裡的幾次例子裡 重新在VBA裡按F8逐條執行,就會成功!? 針對這種問題,做過的補救方式有 1.加迴圈直到網頁完全載入 Do While IE.readyState <> 4 Or IE.Busy DoEvents Loop 2.接上面迴圈,再加等待時間 Application.wait now + timevalue("00:00:05") 以上加了,改善成功率不到5成,時好時壞 記憶體或CPU狀態也有檢查 試過的網站來源不只1個 但是,感覺都沒有辦法抓到問題重點 所以想請教諸位大德開釋 為什麼按F5,一次完整跑,會失敗 按F8,逐條執行,卻會成功 ? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.175.126.106 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1537686188.A.A43.html ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: Ibrahimovic (1.175.126.106), 09/23/2018 15:03:20

09/24 10:07, 6年前 , 1F
建議你去girhub上找一位神人做的VBA-Web來parse,
09/24 10:07, 1F

09/24 10:07, 6年前 , 2F
不要透過IE應該就沒這問題。
09/24 10:07, 2F

09/24 10:08, 6年前 , 3F

09/24 16:40, 6年前 , 4F
可在F8逐條執行成功,表示你程式連線過快,必須放慢,de
09/24 16:40, 4F

09/24 16:40, 6年前 , 5F
lay長一點
09/24 16:40, 5F
感謝2位指教,我再試試 感恩 ※ 編輯: Ibrahimovic (1.175.126.106), 09/25/2018 00:58:05

10/30 09:32, 6年前 , 6F
我印象有個寫法好像要等下載完成才能執行下一個步驟
10/30 09:32, 6F

10/30 09:33, 6年前 , 7F
該不會是這個巴
10/30 09:33, 7F

10/30 09:33, 6年前 , 8F
Do While MyBrowser.busy Or _
10/30 09:33, 8F

10/30 09:33, 6年前 , 9F
MyBrowser.readyState <> 4
10/30 09:33, 9F

10/30 09:34, 6年前 , 10F
DoEvents
10/30 09:34, 10F

10/30 09:34, 6年前 , 11F
Loop
10/30 09:34, 11F

10/30 09:34, 6年前 , 12F
do
10/30 09:34, 12F

10/30 09:34, 6年前 , 13F
Loop Until MyBrowser.readyState = READYSTATE_COMPL
10/30 09:34, 13F

10/30 09:35, 6年前 , 14F
ETE
10/30 09:35, 14F
文章代碼(AID): #1Rfpgw0x (Visual_Basic)
文章代碼(AID): #1Rfpgw0x (Visual_Basic)