返回列表 上一主題 發帖

[發問] 證交所即時資訊的抓取

[發問] 證交所即時資訊的抓取

想抓取的網頁: (用 IE 才能正常,否則上面的連結會不完全 )
http://mis.twse.com.tw/stock/group.jsp?ind=TIDX&ex=tse&currPage=0&type=fixed

用了2個方法都不行:
1. IQY 下載表格, 全部都是  "-"
2. 用 VBA  code 如下:
===========================
Sub sbManualRefresh()
    'Dim HttpReq As New MSXML2.XMLHTTP30
    Dim HttpReq As Object
    Set HttpReq = CreateObject("MSXML2.XMLHTTP.3.0")
    HttpReq.Open "GET", "http://mis.twse.com.tw/stock/group.jsp?ind=TIDX&ex=tse&type=fixed", False
    HttpReq.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    HttpReq.send
   
    If HttpReq.readyState = 4 Then
        Call fetchTesData(HttpReq.responseText)
        G_NEXTTIME = Now() + TimeValue("00:00:00" & G_INTERVAL)
        'MsgBox "complete"
    End If
End Sub
=====================================
HttpReq.responseText 裡面,應該是數字的位置一樣都是  "-"
(如附圖).

請教大家,這個網頁如何透過EXCEL 抓取.....
感謝!! 感謝!!!


VBA 抓下來的

1504610207042.jpg
2017-9-6 20:39

從 Chrome 開發工作看到的

1504610254353.jpg
2017-9-6 20:39
請詳閱 論壇版規愛惜帳號,一起創造美好的學習討論空間。

回復 1# hipper68


從 jsp 裡面找到另一個網址,  Code 如下:

   Sub sbManualRefresh()
    'Dim HttpReq As New MSXML2.XMLHTTP30
    Dim myUrl As String
    Dim HttpReq As Object
    Dim rt As Integer

    Set HttpReq = CreateObject("MSXML2.XMLHTTP.3.0")
    'Set HttpReq = CreateObject("Microsoft.XMLHTTP")
   
    myUrl = "http://mis.twse.com.tw/stock/api/getStatis.jsp?ex=tse&delay=0&_=" & Str(Int(Format(Now, "General Number") * 10000000))
    'myUrl = "http://mis.twse.com.tw/stock/api/getStatis.jsp?ex=tse&delay=0&_=" & Str(1505227799001#)
    MsgBox myUrl
    HttpReq.Open "GET", myUrl, False
    HttpReq.send
   
    If HttpReq.readyState = 4 Then
        Call fetchTesData(HttpReq.responseText)
        G_NEXTTIME = Now() + TimeValue("00:00:00" & G_INTERVAL)
        'MsgBox "complete"
    End If
End Sub

要在原來的後面加上 " &_[時間標籤]"  
加了之後, 使用 python 就可以抓到正確的值...
但是上面的 code 就抓不到....
請問各位大大...有解法嗎??
感謝!!! 感謝!!!

Python 的 code 大致如下 (使用requests 套件) :
STOCKINFO_URL = 'http://mis.twse.com.tw/stock/api/getStatis.jsp?ex=tse&delay=0&_={time}'
page = requests.get( STOCKINFO_URL.format(time=int(time.time()) * 1000))
open('tse_test_0912.csv','wb').write( page.content)

下載結果

VBA.png

TOP

        靜思自在 : 口說一句好話,如口出蓮花;口說一句壞話如口吐毒蛇。
返回列表 上一主題