返回列表 上一主題 發帖

[發問] 現在要如何到證交所下載外資成交資訊

[發問] 現在要如何到證交所下載外資成交資訊

之前是用下列的程式碼 到 http://www.twse.com.tw/ch/trading/fund/TWT38U/TWT38U.php 這邊去下載每日外資買賣超資訊。
原本都沒有問題,但一月份 證交所改網頁,原本可以看到一個下載路徑,但現在沒辦法看到,導致不知道該如何下載每日的 CSV 檔...

有沒有人知道該如何下載?

Dim st
Dim myURL As String
Dim oStream As Object           'ADODB.Stream
Dim WinHttpReq As Object            'XMLHTTP
Dim fileidx As String
Dim seldate As String

Worksheets("Config").Select
endline = Range("A65536").End(xlUp).Row


    seldate = Range("A" & i).Value    ''成交日期
    fileidx = seldate
   
    ''http://www.twse.com.tw/ch/trading/fund/TWT38U/TWT38U_print.php?edition=ch&filename=genpage/A20141202.dat&type=csv
   
    myURL = "http://www.twse.com.tw/ch/trading/fund/TWT38U/TWT38U_print.php?edition=ch&filename=genpage/A" & _
            fileidx & ".dat&type=csv"
         
    ''外資買賣資訊
    Set WinHttpReq = CreateObject("MSXML2.XMLHTTP")
    With WinHttpReq
        .Open "GET", myURL, False
        .Send
        myURL = .responseText
    End With
    Set oStream = CreateObject("ADODB.Stream")
    With oStream
        .Open
        .Type = 1
        .Write WinHttpReq.responseBody
        fileidx = Sheets("Config").Range("G2") & "\A" & fileidx & ".csv"          ''設定下載路徑及檔名
        On Error Resume Next
        Kill fileidx
        On Error GoTo 0
        .SaveToFile fileidx
        .Close
    End With
    Set WinHttpReq = Nothing
    Set oStream = Nothing

End Sub

感謝stillfish00和GBKEE兩位大大的答覆
我研究看看
謝謝

TOP

回復 10# go2hk

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

TOP

回復 10# go2hk
當然不是隨便套用....
網頁千百種,上面方法是在你能知道在下載檔案時
它所發出請求的對象網頁和Post 或Get參數時才用的....

至於怎麼分析出下載請求的對象網頁和Post 或Get參數,
那是另一回事,我也並非都了解....

都不知道的話就學著用 IE物件(InternetExplorer.Application)的方法吧,比較好入門...

ex:
1.   櫃買中心三大法人買賣明細資訊
用GET方法
下載網址   http://www.tpex.org.tw/web/stock ... _hedge_download.php
GET參數    l=zh-tw&t=D&d=104/03/24&s=0,asc,0

2懶得找了..
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

謝謝stillfish00大大的程式碼
順利下載證交所的外資買賣超資訊
另外也自行改成下載投信買賣超資訊
都能正常使用非常感謝

但是想另外請問
以下兩個網頁是櫃買中心的網頁
1.三大法人買賣明細資訊 :
http://www.tpex.org.tw/web/stock/3insti/daily_trade/3itrade_hedge.php?l=zh-tw
2.上櫃股票每日收盤行情(不含定價)
我需要的是所有證券(不含權證.牛熊證)
http://www.tpex.org.tw/web/stock/aftertrading/otc_quotes_no1430/stk_wn1430.php?l=zh-tw

我自行修改了網址的部分
結果抓回來的csv檔
內容卻是網頁的原始碼
請問是不是下列這段需要做何調整

Set WinHttpReq = CreateObject("MSXML2.XMLHTTP")
    With WinHttpReq
        .Open "POST", myURL, False
        .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        .setRequestHeader "Content-Length", Len(sPost)
        .send (sPost)
    End With

或是該如何調整
使得能夠下載回csv檔
感謝

TOP

回復 8# adranimal
一二樓都有線索,自己做做看
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

回復 7# stillfish00
感謝S大的指教
已經可以使用了
但是如果我想要讓抓檔的日期等於Sheets("UI").Range("A22").Value 應該怎麼編寫呢?

TOP

回復 6# adranimal
仔細點啊,你.WebTables 屬性改了兩次
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

感謝S大回覆
目前改成這樣
Sub getSIIPrice()

    urlStr = "URL;http://www.twse.com.tw/ch/trading/exchange/MI_INDEX/MI_INDEX.php"
    Sheets("SIIPrice").Select
    Cells.Select
    Selection.Delete Shift:=xlUp
  With ActiveSheet.QueryTables.Add(Connection:= _
    urlStr _
     , Destination:=Range("A1"))
      .WebTables = "2"
      .PostText = "downlod=&qdate=104%2F03%2F12&selectType=ALLBUT0999"
      .Name = "19"
      .FieldNames = True
      .RowNumbers = False
      .FillAdjacentFormulas = False
      .PreserveFormatting = True
      .RefreshOnFileOpen = False
      .BackgroundQuery = True
      .RefreshStyle = xlInsertDeleteCells
      .SavePassword = False
      .SaveData = True
      .AdjustColumnWidth = True
      .RefreshPeriod = 0
      .WebSelectionType = xlSpecifiedTables
      .WebFormatting = xlWebFormattingNone
      .WebTables = "10"
      .WebPreFormattedTextToColumns = True
      .WebConsecutiveDelimitersAsOne = True
      .WebSingleBlockTextImport = False
      .WebDisableDateRecognition = False
      .WebDisableRedirections = False
      .Refresh BackgroundQuery:=False
      .Delete
   End With
End Sub

但是沒有回傳資料,不知問題出在哪?

TOP

回復 4# adranimal
urlstr = "URL;http://www.twse.com.tw/ch/trading/exchange/MI_INDEX/MI_INDEX.php"
.WebTables = "2"
.PostText = "download=&qdate=104%2F03%2F12&selectType=ALLBUT0999"

改這三個地方
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

        靜思自在 : 盡多少本份,就得多少本事。
返回列表 上一主題