返回列表 上一主題 發帖

轉Web資料問題 !!

轉Web資料問題 !!

http://www.twse.com.tw/ch/trading/exchange/FMNPTK/FMNPTKMAIN.php
使用此網頁查詢個股的年度交易資料 ,
因網頁改版 , 原本的程式已無法抓出資料轉至Excel中 ,
搭配 Fiddler 查詢 post 時的 URL , 但都無法轉出內容 , 全都是空的滴 ,
求解 , TKS !!

採用 joey0415 的方法 , 資料可以轉出來了 ,
感謝二位的協助 .......

TOP

回復 12# joey0415

謝謝你
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 joey0415 於 2017-3-14 15:20 編輯

回復 9# GBKEE

測試環境  WIN 7 32  位元  OFFICE 2010

若使用F8測試,第三個TALBE 有內容

若按F5,則第三個TABLE沒有內容
若加上 SLEEP 測試也是一樣

附上小弟可以執行的程式碼:
  1. Sub 巨集1()
  2.    
  3.     Cells.Clear
  4.     SURL = "http://www.twse.com.tw/ch/trading/exchange/FMNPTK/FMNPTKMAIN.php"
  5.     SN = "2002"
  6.     Set MYQT = ActiveSheet.QueryTables.Add(Connection:="URL;" & SURL, Destination:=Range("$A$1"))
  7.     With MYQT
  8.         .PostText = "download=&CO_ID=" & SN
  9.         .Refresh BackgroundQuery:=False
  10.         .Delete
  11.     End With
  12.     Set MYQT = Nothing
  13. End Sub
複製代碼

TOP

回復 10# oliwa

有請高於2003版者幫忙除錯
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

修正後仍沒有正確抄錄資料 ,
中斷後 , 發現都在 DoEvents 那 ,
並沒有繼續往下執行 , 所以還沒有到抄錄資料的程式.....
這是因為轉錄到"Table"作業未完成 , 還是它一直在循環中 ?
這部分可以如何修正 ? 謝謝....

TOP

回復 8# oliwa
  1. Sub TT(stockNo As String)
  2.     Dim xTable As Object, Sh As Worksheet, R As Integer, C As Integer, i As Integer, ii As Integer
  3.     'Co_Id = stock_no
  4.     'Co_Id = stockNo
  5.     With CreateObject("InternetExplorer.Application")
  6.         .Visible = True     '**網頁不顯示 .Visible = False
  7.         .Navigate "http://www.twse.com.tw/ch/trading/exchange/FMNPTK/FMNPTKMAIN.php?download=csv&CO_ID=" & stockNo
  8.                                                                                                                                                                          '**直接給上***
  9.                                                                                                                                                                         
  10.         Do While .Busy Or .readyState <> 4: DoEvents: Loop '等候網頁載入完整
  11.             .Document.ALL("query-button").Click     '網頁上按下查詢鍵
  12.         '***附欓沒有Click後,再一次 等候網頁載入完整***
  13.         Do While .Busy Or .readyState <> 4: DoEvents: Loop '等候網頁宰入完整
  14.         '*********************************************
  15.         Do
  16.             Set xTable = .Document.ALL.TAGS("Table")               '設定變數為網頁 tagname "Table"的物件集合
  17.             DoEvents
  18.         Loop Until xTable.Length = 6
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

活頁簿2.zip (16.58 KB)
檔案如附件 , 請協助 , 謝謝 !!

TOP

回復 6# oliwa
附欓上來,請有高於2003版者幫忙除錯
   
  1. Do
  2.             Set xTable = .Document.ALL.TAGS("Table")                 '設定變數為網頁 tagname "Table"的物件集合
  3.             DoEvents
  4.         Loop Until xTable.Length = 6
  5.                Application.VBE.Windows("區域變數").Visible = True  '查看沒錯誤這行程式碼可珊掉
  6.         Stop                  '查看沒錯誤這行程式碼可珊掉
複製代碼

4#所加入的程式碼 執行到Stop, 程式會暫停 區域變數視窗中有看到 xTable.Length = 6 嗎?
如有表示資料有抓到, 按F5程式繼續執行下去,資料就出來了
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

目前使用 office 365 , 有更新所以應該是 2016 版 ,
IE 資料網頁有開啟 , 而且不用按畫面也能帶出資料 ,
只是抄寫至 sheet 時仍沒有成功 , 完全是空白滴.......

TOP

        靜思自在 : 【做人的開始】每一天都是故人的開始,每一個時刻都是自己的警惕。
返回列表 上一主題