返回列表 上一主題 發帖

[發問] 使用WEB查詢更新資料時,跳出來的錯誤,

回復 10# stillfish00


   試看看
不管如何都感謝你發言回覆^^

TOP

會不會跟網路品質有關(本身網速、或是該網站當時無法回應...)

TOP

icestormer 大,
你的問題我有遇過,基本上你應該也是使用iqy去抓取資料的對吧!
當網路下載順利應該就不會出現此現象,
而該網站繁忙時就有可能會出現。
我之前想抓20組資料,分別放在20張sheet裡,
可是我一次就將20組的代號更換掉,
可能因此偶爾會發生此一現象。
當發生時,假設其中一組,我更改其代號但它依舊會發生。
不會發生錯誤的sheet,發生的機率只有一成。

建議你,採用vba來下載資料,每頁sheet之間,
相隔1~5秒(確認下載完成),抓取資料應該還蠻順暢的。

TOP

用VBA來抓才是正確的

例如網站忙時,你要設定一個程式例如十秒,或是那個網頁出現例如:無此資料…語句,就跳到下一檔股票,並將跳過的股票代碼,寫進LOG檔中,這樣更新就不會有問題,也會知道是哪一檔哦!

這種事以前我有也過,後來自己寫就沒有問題

TOP

回復 6# GBKEE

能否 請問大大....
     
     如何可以不要出現 [查詢更新]

如圖



附檔 每日收盤行情.rar (60.54 KB)
50 字節以內
不支持自定義 Discuz! 代碼

TOP

本帖最後由 GBKEE 於 2013-12-28 18:52 編輯

回復 15# 7777

   

你的Web匯入參數有誤
  1. Option Explicit
  2. Sub Ex() '修改你的Web參數
  3. Dim URL, DCym, DCymd, Eymd '
  4. DCym = "[" & """ym """ & "," & """" & Format(Date, "yyyymm") & """" & "]"        '西元年月
  5. DCymd = "[" & """ymd """ & "," & """" & Format(Date, "yyyymmdd") & """" & "]"     '西元年月日
  6. Eymd = "[" & """Eymd""" & "," & """" & Format(Date, "E/mm/dd") & """" & "]"       '民國年/月/日
  7. URL = "URL;http://www.twse.com.tw/ch/trading/exchange/MI_INDEX/genpage/Report" & DCym & "/A112" & DCymd & "ALLBUT0999_1.php?select2=ALLBUT0999&chk_date=" & Eymd
  8.     With Sheet1.QueryTables(1)
  9.         .Connection = URL
  10.         .WebSelectionType = xlSpecifiedTables
  11.         .WebFormatting = xlWebFormattingNone
  12.         .WebTables = "10"
  13.         .WebPreFormattedTextToColumns = True
  14.         .WebConsecutiveDelimitersAsOne = True
  15.         .WebSingleBlockTextImport = False
  16.         .WebDisableDateRecognition = False
  17.         .WebDisableRedirections = False
  18.         .Refresh BackgroundQuery:=False
  19.     End With
  20. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 16# GBKEE

感謝大大
Web的參數沒有錯
因為
台灣交易所的資料,沒有 (2012/12/28) 所有會有誤
加上交易所 13:30 收盤後,約13:50 才會匯整好資料
以致於 本人希望是 更改為[手動的方式]來進行
所以重點是 .... [T2] 要是 台灣交易所 有開盤的時間日期才可以抓資料
因為沒有錯,所以就改回,謝謝大大

    Option Explicit
    Sub Ex() '修改你的Web參數
    Dim URL, DCym, DCymd, Eymd '
    DCym = [T4]        '西元年月
    DCymd = [T3]       '西元年月日
    Eymd = [T5]        '民國年/月/日
    URL = "URL;http://www.twse.com.tw/ch/trading/exchange/MI_INDEX/genpage/Report" & DCym & "/A112" & DCymd & "ALLBUT0999_1.php?select2=ALLBUT0999&chk_date=" & Eymd
        With Sheet1.QueryTables(1)
            .Connection = URL
            .WebSelectionType = xlSpecifiedTables
            .WebFormatting = xlWebFormattingNone
            .WebTables = "10"
            .WebPreFormattedTextToColumns = True
            .WebConsecutiveDelimitersAsOne = True
            .WebSingleBlockTextImport = False
            .WebDisableDateRecognition = False
            .WebDisableRedirections = False
            .Refresh BackgroundQuery:=False
        End With
    End Sub
50 字節以內
不支持自定義 Discuz! 代碼

TOP

回復 17# 7777
這是你附檔Web的網址
'www.twse.com.tw/ch/trading/exchange/MI_INDEX/genpage/Report["股價年月","股價年月"]/A112["股價年月日","股價年月日"]ALLBUT0999_1.php?select2=ALLBUT0999&chk_date=29991231 這裡錯誤
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 18# GBKEE

感謝大大 時事求事~ 認真的面對每一個問題

沒錯 Web的網址 第3個時間是,取非常非常未來的日期

    DCym = [T4]        '西元年月
    DCymd = [T3]       '西元年月日
    Eymd = [T5]        '民國年/月/日

因為 第1,2 是要取所要的時間資訊 (所以 會是變數)

第3個時間的條件,似乎是要
限制有效的資訊:在最後的時間日期內 (所以 取一個非常遠的常數也可以)

大大的做法,是最正確的方法

感謝大大
50 字節以內
不支持自定義 Discuz! 代碼

TOP

        靜思自在 : 吃苦了苦、苦盡廿來,享福了福、福盡悲來。
返回列表 上一主題