Board logo

標題: [發問] 請問-抓取網站資料OPEC原油(中塑資訊網) [打印本頁]

作者: fusayloveme    時間: 2012-6-27 18:31     標題: 請問-抓取網站資料OPEC原油(中塑資訊網)

本帖最後由 GBKEE 於 2012-6-27 20:13 編輯

請問版上神人大大們,能否抓取http://www.l-zzz.com/shiyou/sy_list.jsp?nID=46,此網站內的"OPEC原油"的資料,
因為若從2005年開始抓,高達104頁,能否利用巨集抓取想要的資料。

附上之前我發問的資料(http://forum.twbts.com/thread-5888-1-1.html),嘗試多次均無反應,渴望版上神人能夠幫忙解決。

再下先感激各位~神人先進,謝謝。
作者: GBKEE    時間: 2012-6-27 21:52

回復 1# fusayloveme
匯入104 次 太久了, 找找看哪裡有可以一次匯入的資料.
以下程式試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim xi, q  As QueryTable, i As Integer, Rng As Range
  4.     Sheets("紀錄").Cells.Clear       '"紀錄"     工作表
  5.     With Sheets("Sheet1")            '"Sheet1" 工作表
  6.         .Cells.Clear
  7.         For Each q In .QueryTables
  8.             q.Delete                 '清除外部查詢
  9.         Next
  10.         With .QueryTables.Add("URL;http://www.l-zzz.com/shiyou/sy_list.jsp?nID=46", .[a1])
  11.             .WebSelectionType = xlSpecifiedTables
  12.             .WebFormatting = xlWebFormattingNone
  13.             .WebTables = "17"                                 '取得頁數
  14.             .WebPreFormattedTextToColumns = True
  15.             .WebConsecutiveDelimitersAsOne = True
  16.             .WebSingleBlockTextImport = False
  17.             .WebDisableDateRecognition = False
  18.             .WebDisableRedirections = False
  19.             .Refresh BackgroundQuery:=False
  20.         End With
  21.         xi = InStr(.[a1], "/")                               '字串:"共 1859 條紀錄    1/104" 尋找 "/"位置
  22.         xi = Val(Mid(.[a1], xi + 1))                         '轉為數字               '                              '
  23.         For i = xi To 1 Step -1
  24.             With .QueryTables(1)
  25.                 .Connection = "URL;http://www.l-zzz.com/shiyou/sy_list.jsp?nID=46&pageNum=" & i
  26.                 .WebSelectionType = xlSpecifiedTables
  27.                 .WebFormatting = xlWebFormattingNone
  28.                 .WebTables = "16"                             '資料位置
  29.                 .WebPreFormattedTextToColumns = True
  30.                 .WebConsecutiveDelimitersAsOne = True
  31.                 .WebSingleBlockTextImport = False
  32.                 .WebDisableDateRecognition = False
  33.                 .WebDisableRedirections = False
  34.                 .Refresh BackgroundQuery:=False
  35.             End With
  36.             If i > 1 Then
  37.                 Set Rng = .QueryTables(1).ResultRange
  38.                 Set Rng = Rng.Range(Rng.Cells(2, 1), Rng.Cells(Rng.Rows.Count, Rng.Columns.Count))
  39.                 Rng.Copy                                        '資料複製
  40.             Else
  41.                 .QueryTables(1).ResultRange.Copy
  42.             End If
  43.             Sheets("紀錄").[a1].Insert Shift:=xlDown            '插入資料
  44.         Next
  45.     End With
  46. End Sub
複製代碼

作者: c_c_lai    時間: 2012-6-28 05:22

回復 1# fusayloveme
回復 2# GBKEE
怎麼會是簡體文呢?我將 G 的作品附上提供大家參考。
[attach]11515[/attach]
作者: fusayloveme    時間: 2012-6-28 16:32

本帖最後由 fusayloveme 於 2012-6-28 16:33 編輯

回復 2# GBKEE
回復 2# c_c_lai

感謝您們的幫助,K大我會找看看有沒有一次性匯入的,台灣網站太少相關類似的整理網站,所以只好找往大陸,美國本國的限於語文障礙....哈

再次感謝您們的幫助,祝您們事事順心,謝謝。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)