返回列表 上一主題 發帖

[發問] 請高手解惑幫忙! 上櫃網站又改版了!抓不到資料

[發問] 請高手解惑幫忙! 上櫃網站又改版了!抓不到資料

各位高手大大好
小弟原本參考別人網上用xmlhttp來 抓取上櫃交易明細. 昨天發現櫃檯網站改版,小弟用Fiddler查封包看不出所以然!
懇請高手幫忙解惑! 小弟感激不盡!

Sub 下載交易明細(FilePath As String, stockid As String, saledate As String)
    Set oXMLHTTP = CreateObject("Microsoft.XMLHTTP")
    Set objStream = CreateObject("ADODB.stream")
   
    webdate = Replace(saledate, Year(Date), CStr(CInt(Year(Date)) - 1911))
    FileName = FilePath + "\" + saledate + "_" + stockid + ".CSV"
   
    With oXMLHTTP
        .Open "GET", "http://www.gretai.org.tw/ch/stock/aftertrading/broker_trading/download_ALLCSV.php", False
        '.Open "POST", aa, False
        .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        .send "curstk=" & stockid & "&stk_date=" & webdate
        
        If .readyState = 4 Then '.Status = 200
            With objStream
                .Type = 1       '以二進位方式操作
                .Open           '開啟物件
                .Write oXMLHTTP.ResponseBody
               
                If Dir(FileName) <> "" Then Kill FileName
                .SaveToFile FileName
                .Close
            End With
        End If
    End With
   
    Set oXMLHTTP = Nothing
    Set objStream = Nothing
End Sub

以下是上櫃網站的網址
http://www.gretai.org.tw/ch/stock/aftertrading/broker_trading/brokerBS.php

感謝您~~~~
Happy

回復 2# joey0415


  J大,
請提點小弟! 可以下載,卻發現下載的都是沒有交易資料的 *.csv檔 ,是參數有哪裡不同了??  
感激不盡~~~~

Sub 下載交易明細(FilePath As String, stockid As String, saledate As String)
    Set oXMLHTTP = CreateObject("Microsoft.XMLHTTP")
    Set objStream = CreateObject("ADODB.stream")
   
    webdate = Replace(saledate, Year(Date), CStr(CInt(Year(Date)) - 1911))
    FileName = FilePath + "\" + saledate + "_" + stockid + ".CSV"
   
    With oXMLHTTP
        .Open "POST", "http://www.gretai.org.tw/ch/stock/aftertrading/broker_trading/download_ALLCSV.php", False
        .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        .send "curstk=" & stockid & "&stk_date=" & webdate
        
        If .readyState = 4 Then '.Status = 200
            With objStream
                .Type = 1       '以二進位方式操作
                .Open           '開啟物件
                .Write oXMLHTTP.ResponseBody
               
                If Dir(FileName) <> "" Then Kill FileName
                .SaveToFile FileName
                .Close
            End With
        End If
    End With
   
    Set oXMLHTTP = Nothing
    Set objStream = Nothing
End Sub
Happy

TOP

請教 J大,
"application/x-www-form-urlencoded" 是否應改成 "application/csv"
感謝您~~~~
Happy

TOP

回復 2# joey0415


    感謝J大,
如您所說! 修改字串就OK了~~

謝謝您~~~~
Happy

TOP

回復 6# kcl00168

依照J 大的提示, 修改這一個位址, 就可以了~~
原本的: http://www.gretai.org.tw/ch/stock/aftertrading/broker_trading/download_ALLCSV.php
修改後: http://www.gretai.org.tw/ch/stock/aftertrading/broker_trading/download_ALLCSV.php?curstk=1558&stk_date=1021230

證交所有時會改過來又改過去~真的是@%*&#.,^#
Happy

TOP

回復 8# kcl00168


    我有些檔案下載也不完全,情況跟您述說的狀況一樣~~~
傷腦筋了~~~~
Happy

TOP

回復 9# million2billion

server端改版後, 不知道是不穩還是會擋ㄝ~~~~現在連網頁也進不去. 網頁訊息如下!


糟糕!Google 瀏覽器無法連線至 www.gretai.org.tw

請重新載入: www.-gretai.-org.-tw/-ch/-stock/-aftertrading/-broker_trading/-brokerBS.-php
Happy

TOP

回復 11# kcl00168


    K大, 新年快樂~
我早上改過位址後, 下載禮拜一的資料正常, 晚上後準備下載禮拜二ㄉ資料又開始不穩定了∼∼∼
我快哭ㄌ∼∼∼∼嗚嗚嗚∼∼
Happy

TOP

回復 2# joey0415

joey 大大,
更改字串後, 只能下載到標頭而已, 交易資料都是空白, 所以目前還是只能用手動下載!
請教您! 是否網址有變? 還是能有其他解法?
謝謝您!
Happy

TOP

回復 15# joey0415


感謝Joey大大,
目前下載順暢, 這次櫃台網站改版後, 還是有點卡卡的! 只能加一些容錯處哩!
謝謝您!
Happy

TOP

        靜思自在 : 有願放在心裡,沒有身體力行,正如耕田不播種,皆是空過因緣。
返回列表 上一主題