標題:
[發問]
網頁表單下載
[打印本頁]
作者:
lalalada
時間:
2017-3-27 11:40
標題:
網頁表單下載
本帖最後由 lalalada 於 2017-3-27 11:45 編輯
各位前輩好!
我想抓取http://pivot.tii.org.tw/lifesta/DQPFrame1.htm的資料
設定如下圖
[attach]26896[/attach]
然後會跳出新視窗
[attach]26897[/attach]
因為有28頁
想請問是否能一口氣下載成單一excel檔呢?
我知道基本的get/post方法但做不出來....
謝謝!
作者:
GBKEE
時間:
2017-3-28 13:19
本帖最後由 GBKEE 於 2017-3-28 13:20 編輯
回復
1#
lalalada
1. IE 網址
http://pivot.tii.org.tw/lifesta/DQPFrame1.htm
,(設好要查尋的項目) ,按下[開始查尋]
2.在Excel 上執行,vba程式
Option Explicit
Sub Ex()
'請先將專案 [設定引用項目]加入 Microsoft Internet Controls
Dim shell_windows As New SHDocVw.ShellWindows
Dim Ie As SHDocVw.InternetExplorer
For Each Ie In shell_windows
With Ie
Do While .Busy Or .ReadyState <> 4: Loop
If InStr(.Document.Title, "產物保險業務統計查詢結果") Then .Quit
End With
Next
Ex_產物保險業務統計下載
End Sub
Sub Ex_產物保險業務統計下載()
Dim i As Integer, P, xTab As Object, R, C, II
With CreateObject("InternetExplorer.Application")
' .Visible = True
Do
.Navigate "http://pivot.tii.org.tw/lifesta/NLifeResult.asp?page=" & i + 1
Do While .Busy Or .ReadyState <> 4: DoEvents: Loop
Set xTab = .Document.all.tags("table")
If i = 0 Then
P = Split(xTab(2).innertext, ")")(0)
P = Val(Split(P, "共")(1))
Cells.Clear
End If
Application.StatusBar = "共 " & P & " 頁 / 第 " & i + 1 & " 頁"
For R = IIf(i = 0, 0, 1) To xTab(1).Rows.Length - 1
For C = 0 To xTab(1).Rows(R).Cells.Length - 1
Cells(II + 1, C + 1) = xTab(1).Rows(R).Cells(C).innertext
Next
II = II + 1
Next
i = i + 1
Loop Until i = P
.Quit '關閉網頁
End With
End Sub
複製代碼
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)