lwhuang 發表於 13-6-14 07:08

如何自動下載台灣加權指數?


如何自動下載台灣加權指數?
我查到證交所的網頁是
http://www.twse.com.tw/ch/trading/indices/MI_5MINS_HIST/MI_5MINS_HIST.php
有個下載CSV的按鈕,可是不知道這個按鈕的直接連結是什麼?
想用 wget自動抓
Thanks

goldsuper7 發表於 13-6-14 08:53

本頁隱藏在HTML(<input type=hidden id='html' name='html' value="數據內容")
那種把加權指數用隱藏在HTML轉存CSV
CSV按鈕的直接連結就是用前一個的隱藏在HTML網頁輸入CSV格式

lwhuang 發表於 13-6-14 09:09

感謝goldsuper7的提點,但是不懂耶,那答案是什麼?

goldsuper7 發表於 13-6-14 09:10

早期用的每分鐘自動化抓取271點交易數據
民國100年1月16日以前 每一分鐘方式提供早期得
目前要用每15秒自動化機器人抓取即時的取1081點交易數據
自動化程式抓當日即時開盤指數 及盤中的高指數跟最低指數 最後的收盤指數

alexliou 發表於 13-6-14 10:32

我會用以下這段程式把它找出來

For Each t In IE.document.getElementsByTagName("input")
            If Trim(t.Value) = "查詢" And t.Type = "button" Then
                Set button_object = t
                Exit For
            End If
Next

Sirius 發表於 13-6-14 11:59

這個網頁的資料擷取,建議直接解析網頁了

因這個網頁的作法有點繁鎖
它把資料包在form中,再用另一JavaScript處理
故無法直接取得該資料

晚點另補2個圖做說明,剛上傳圖片出錯

Sirius 發表於 13-6-14 17:28

除了在網頁上看到的表格資料,另一份重複資料被暗藏在一個 id 為 data_form 的表單中,如紅框所示
底下反白成藍色的部份,就是點「另存csv」要做的動作,它調用exportReportData()



exportReportData()在外部的JavaScript檔中,它把data_form表單的資料再送回後端伺服器處理,再從伺服器傳回.csv檔


該站上許多網頁程式都像上述脫褲子放屁的作法,包裝重複資料,要.csv檔時,再把已經在使用者機器中的資料傳回伺服器,處理完再傳回.csv檔。
小量資料傳來傳去還不打緊,有些大量資料(像當日全部個股及權證資料)這樣傳來傳去,不僅效率不好,也多耗網路頻寬,也增加伺服器負荷

若要用wget的方式取回.csv檔,也必須抓出這段暗藏的資料,倒不如直接解析網頁上那個資料表格,反而會省事些

Sirius 發表於 13-6-18 11:34

有興趣可參考一下這篇:利用 Python 抓取資料導入 AB喔
頁: [1]
查看完整版本: 如何自動下載台灣加權指數?