Board logo

標題: [發問] 證交所即時資訊的抓取 [打印本頁]

作者: hipper68    時間: 2017-9-6 20:42     標題: 證交所即時資訊的抓取

想抓取的網頁: (用 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 抓取.....
感謝!! 感謝!!!


[attach]27717[/attach][attach]27718[/attach]
作者: hipper68    時間: 2017-9-12 23:00

回復 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)




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)