綠茶妹 發表於 10-7-3 10:32

回復 14# wldtw2008


    Cool~~wldtw2008大大,你的工具包功能這麼多功能,感謝!

altubers 發表於 10-7-3 10:54

回復 15# google_hunter


    請問這種轉換過的csv 能貼個檔來看看嗎?

google_hunter 發表於 10-7-3 14:17

回復google_hunter


    請問這種轉換過的csv 能貼個檔來看看嗎?
altubers 發表於 10-7-3 10:54 AM http://www.coco-in.net/images/common/back.gif


這是我平常用的格式,為了和以前的歷史資料一致,我使用的時間單位,最小是1分k。

linusx 發表於 10-8-25 20:31

嗚~剛好看到我自己的Blog,放在我 blog 的只是 sample 版本,
我自己是有另外再寫一個 C# 版本的程式交易,有 UI 介面 可以做即時交易。

RPT 檔其實不用擔心,直接當成 CSV 檔打開就好了,裡面的格式也是用',' 分開,
有任何想要改進的地方,可以到我的 blog 開一下需求。

usermail 發表於 10-11-4 00:42

使用這個抓資料就太方便了~
其他的就自己加工了~

clemond 發表於 10-11-7 19:19

綠茶妹真是多才多藝,佩服佩服!

durian77 發表於 10-11-15 01:01

我只能說
大家都太厲害了
感謝分享

kima520 發表於 11-3-6 03:21

原來怪雞絲一大堆
感恩︿︿

kima520 發表於 11-3-7 18:06

TaiFexWebDownloader真的比較方便好用

Sirius 發表於 11-3-11 22:36

以Python 3.2寫的類似功能,檔案會存在 D:\Downloads
位置可以改,在第20行,程式會自動建立該目錄
如果該目錄已有的檔案,不再重複下載,也不會產生無交易日的檔案import urllib.request
from urllib.error import HTTPError, URLError
from datetime import date, timedelta
import os

def download_file(url, file):
    print('downloading...' + url)
    try:
      req = urllib.request.Request(url)
      req.add_header('User-Agent', 'Mozilla/6.0')
      data = urllib.request.urlopen(req).read()
      with open(file, 'wb') as zip_file:
            zip_file.write(data)
    except HTTPError as e:
            print("HTTP Error:", e.code , url)
    except URLError as e:
            print("URL Error:", e.reason , url)

if __name__ == '__main__':
    download_dir = 'D:/Downloads'
    taifex_url_base = 'http://www.taifex.com.tw/DailyDownload/'
    if not os.path.exists(download_dir):
      os.makedirs(download_dir)
    for i in range(60):
      downloaded_date = date.today() - timedelta(days = i)
      file_name = 'Daily_' + downloaded_date.strftime('%Y_%m_%d') + '.zip'
      local_file = os.path.join(download_dir, file_name)
      rptfile_name = 'Daily_' + downloaded_date.strftime('%Y_%m_%d') + '.rpt'
      file_already_exists = os.path.exists(local_file) or os.path.exists(os.path.join(download_dir, rptfile_name))
      if file_already_exists:
            print('zip/rpt file already exists: ' + local_file)
      else:
            url = taifex_url_base + file_name
            download_file(url, local_file)
    print('Completed!')

綠茶妹 發表於 11-4-30 08:29

本帖最後由 綠茶妹 於 11-4-30 08:53 AM 編輯

回復 25# fygul


    {:4_627:} 太好了,我可以去和小娃領賞了。感謝!
http://coco-in.net/thread-10101-1-1.html

讚讚讚!!
我剛才試用很好用,沒有空檔案的問題!

minime 發表於 11-6-19 00:32

謝謝綠茶妹和fygul無私的分享!

pythonist 發表於 11-6-19 03:52

兩行程式碼下載

    前30個交易日期貨每筆成交資料
    前30個交易日期貨價差委託成交概況表
    前30個交易日期貨價差每筆成交資料

    前30個交易日選擇權每筆成交資料
共120個zip檔。
已存在的檔案不會再抓。
Win7 + Python 2.7.2測試通過。

import itertools, os.path, re, urllib
map(lambda (e, u, f):urllib.urlretrieve(u, f) if not e else None, map(lambda (x, y):(os.path.exists(y), 'http://www.taifex.com.tw/' + ('DailyDownload', 'DailyDownload_B', 'DailyDownload_C', 'OptionsDailyDownload') + '/' + y, y), enumerate(itertools.chain.from_iterable(map(lambda y: re.findall('[^/]*.zip', urllib.urlopen(y).read()), map(lambda z: 'http://www.taifex.com.tw/chinese/3/3_' + z + '.asp', ('1_3', '1_4', '1_5', '2_4')))))))

Sirius 發表於 11-6-19 10:54

光看pythonist這名字就知道應是Python行家{:4_153:}
Win2k + python 2.7.1實測可用

minime 發表於 11-6-19 11:23

本帖最後由 minitrader 於 11-6-19 11:25 AM 編輯

之前裝了 Python 2.5 不能跑 pythonist 的 script, 裝了 2.7 再重啟電腦就可以了.感恩
頁: 1 [2] 3
查看完整版本: 自動抓近30日期交所期貨rpt檔的python程式