標題:
多網頁同時抓取問題請益?
[打印本頁]
作者:
joey0415
時間:
2013-8-1 18:55
標題:
多網頁同時抓取問題請益?
假設有相同的網頁,例如:http://stock.wearn.com/astock.asp?kind=
2330
假設代碼從1101~3000
小弟想1000~2000開一個網頁抓
2001~3000開另一個網頁抓
上面的網站很快,只是舉例…
小弟只知道要設兩個類似Set
IEa
= CreateObject("InternetExplorer.Application"),Set
IEb
= CreateObject("InternetExplorer.Application"),可是代碼寫在同一個sub,還是會先後執行…
不知道有高手可以指點一下嗎?
這樣可以省下抓取的時間
Sub vba打開網頁()
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.Navigate ("http://stock.wearn.com/astock.asp?kind=2330")
抓網頁…下面小弟會寫
End Sub
複製代碼
作者:
luhpro
時間:
2013-8-1 23:15
回復
1#
joey0415
請參考這個 :
同時跑兩個程式!
作者:
joey0415
時間:
2013-8-2 15:40
luhpro大的範例的確可行
不過小弟的程式都要
上網頁抓資料
,都有下面這行設定(
會開啟ie
),所以即使在doevents的設定下,也不能按下另一個按鈕
本來想說開兩個網頁抓,時間會省一半,不過還是不能按下去
不知有解嗎?
謝謝
Set
xa
= CreateObject("internetexplorer.application")
Set
xb
= CreateObject("internetexplorer.application")
作者:
luhpro
時間:
2013-8-2 23:39
luhpro大的範例的確可行
不過小弟的程式都要上網頁抓資料,都有下面這行設定(會開啟ie),所以即使在doev ...
joey0415 發表於 2013-8-2 15:40
不能按是正常的啊,
在 Excel VBA 上,
doevents 只是把系統控制權暫時移交出去,
而在其把控制權取回前(也就是 doevents 執行期間) 該Excel VBA 是沒有(辦法)做任何動作的.
所以你要同時跑兩個網頁,
比較好的方式是將兩個網頁的操作動作交錯一下,
(A執行讀網頁,接著B處理已經讀取完成的網頁內容,回到A確認讀取網頁完成後,開始處理網頁內容,再來B開始讀取新的網頁資料...)以上迴圈
間或中間再加放一兩個 doevents 讓其他程式也可以處理自己的事情.
我想這樣應該才是你想要的功能.
作者:
joey0415
時間:
2013-8-3 01:29
回復
4#
luhpro
感謝大大的回應,我會試著同時多開幾個網頁,分散下載至不同sheet中,再分批讀取出來試試看
如果有機會再報告給大家知道
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)