tuyihsun 發表於 15-1-22 18:43

方法一 :
VB6
Inet.Execute sURL, "POST", sFormData, sHeader

方法二 :改用 .Net 寫

只能點到這裡了


jak 發表於 15-3-4 00:35

下列期間的上市櫃收盤行情(全部),證交所和櫃買中心沒有提供CSV下載
上市─民國89年1月4日至93年2月10日
上櫃─民國92年8月至96年4月20日
苦惱{:4_93:}
有前輩可提供EXCEL可開啟的檔案嗎?拜託了{:4_161:}

Sirius 發表於 15-3-4 10:02

jak 發表於 15-3-4 00:35 static/image/common/back.gif
下列期間的上市櫃收盤行情(全部),證交所和櫃買中心沒有提供CSV下載
上市─民國89年1月4日至93年2月10日
上 ...

看一下這篇「台股上市上櫃個股歷史資料」

jak 發表於 15-3-4 10:50

Sirius 發表於 15-3-4 10:02 static/image/common/back.gif
看一下這篇「台股上市上櫃個股歷史資料」

感謝大大撥冗回復,這篇我有看過,
不過我需要的是每天全部的資料,
如果從網站下載下來的檔名是這樣

上市A11220150303ALLBUT0999_1.csv
上櫃RSTA3104_1040303.csv

我沒權限貼網址,應該內行的大大會懂

Sirius 發表於 15-3-4 14:58

jak 發表於 15-3-4 10:50 static/image/common/back.gif
感謝大大撥冗回復,這篇我有看過,
不過我需要的是每天全部的資料,
如果從網站下載下來的檔名是這樣


那篇已有完整的說明了
是否符合你的需求就請自行判斷了
你要的是以日為單位,一日一個檔案
那篇的資料是以公司為單位,一個公司一個檔案
內容都是開、高、收、低
但要注意成交量的單位

jak 發表於 15-3-5 02:22

本帖最後由 jak 於 15-3-5 02:25 編輯

再次感謝大大的回復,雖然資料不太符合我所要的,不過很謝謝你熱心幫忙,讓人覺得這個論壇好溫暖{:7_443:}

Sirius 發表於 15-11-21 11:07

剛看到有位coco的朋友發給我的消息

15-11-20 23:32想請問小弟的程式哪裡有問題,我查不太出來?
datestr = str(current_insert_day.year-1911)+"/"+str(current_insert_day.month)+"/"+str(current_insert_day.day)//生成date 104/7/28
data = {'download': '', 'qdate': datestr, 'selectType': 'MS'}
agent = 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0'
上面的程式都會抓到今天的資料,
如果使用Sirius大的寫法,
    url = 'http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/MI_MARGN.php'
    data = {'download': '', 'qdate': '104/08/14', 'selectType': 'MS'}
直接修改紅色的字串,則可以抓到104/8/14的資料。
請問想抓一段期間的資料,使用變數傳入該如何修改呢?
感謝。{:4_82:}
沒仔細看,還以為要問我AmiBroker的問題,只是越看越不像,這哪是AmiBroker語法?{:4_155:}
仔細看看,原來是要問用Python下載證交所股票資料方面的問題,是我想歪了
我還在想,這好像是很久以前在哪發表的文章中的一段代碼?看來有點像是我寫的,不過也好像是別人寫的
回憶了半天,終於想到“好像”是這篇,花些功夫把十個月前的文章翻了出來{:4_163:}
這證明我總算沒得到老人痴呆症,好險,還可以找到回家的路
不過,希望下回若有朋友用消息問我這類問題時,最好把原始連結也附上,省得我花老半天才搞清楚狀況

其實這個問題可以直接發在這裡,也許別人看到了,就先回答了

此問題的要點應該在於:

[*]如何產生所需要的民國年月日格式的字串,像'104/11/20'
[*]如何使用迴圈,產生一段日期期間內所有如上述般的格式字串,逐一置入下載程序中,好把這段期間的資料全部抓下來

這其實牽涉到Python語法的使用,也許要寫篇Python基礎語法的教學文來解釋,或是去找篇別人寫好的文章來看比較快。這方面,請容我稍晚回來時再做說明,現在要出門去了

對於不太想自己寫程式的朋友,其實也有其它現成的工具可用,像lwhuang之前分享過的「抓股票資料爬蟲」

Sirius 發表於 15-11-21 15:22

本帖最後由 Sirius 於 15-11-21 15:24 編輯

Python語言基礎請參考一下「Python教學資源」


以下說明日期字串的產生方式與迴圈
以下是粗略的代碼,請自行調整成你所要的

假設先指定開始與結束日期字串:
我習慣用西元,在後面會轉成民國年date_s = '20150801'
date_e = '20150831'轉換成日期型別:from datetime import date, timedelta
from time import sleep

date_s = date(int(date_start[:4]), int(date_start), int(date_start))
date_e = date(int(date_end[:4]), int(date_end), int(date_end))開始日期與結束日期間的迴圈:while date_s <= date_e:
    yyyy = date_s.strftime('%Y')
    mm = date_s.strftime('%m')
    dd = date_s.strftime('%d')

    # 產生民國“年/月/日”字串
    twymd = '{}/{}/{}'.format(int(yyyy) - 1911, mm, dd)

    data = {'download': 'csv', 'qdate': twymd, 'selectType': 'ALLBUT0999'}
    # 下載資料,這裡省略。
    # 暫停一秒
    sleep(1)

    # 把日期加一日   
    date_s = date_s + timedelta(days=1)迴圈內請記得稍暫停一下,暫停時間也可用像0.5秒的時間,總之別忘記這點
不然可能會造成網站的瞬間大流量與負荷
我之前曾觀察過迴圈內不暫停持續下載大量資料的結果,在幾秒間就下載幾百MB流量
雖然對下載的人而言是很爽,但對於網站而言可能是災難
尤其剛好有多人同時同樣幹這種事時,簡單說,有點像網路恐佈攻擊
所以記得暫停一下,免得哪天大家都不能用的時候那就好玩了

另外,自己會有個檔案記錄交易所的營業日
我自己的程式會讀取這個檔案,不會去抓非營業日的資料,可避免不必要的網路擷取動作


今天為這問題也花了我不少小時的時間,希望以上能解答這位朋友的問題

hang 發表於 15-11-21 23:01

Sirius 發表於 15-11-21 15:22 static/image/common/back.gif
Python語言基礎請參考一下「Python教學資源」




哈... 我抓東西不單沒等0.5秒... 還MULTI-THREAD同時多筆去抓..... {:4_161:}

Sirius 發表於 15-11-22 10:06

hang 發表於 15-11-21 23:01 static/image/common/back.gif
哈... 我抓東西不單沒等0.5秒... 還MULTI-THREAD同時多筆去抓.....

網站有可能會被你操掛{:4_161:}

頁: 1 [2]
查看完整版本: 證交所的每日收盤行情csv