2010年1月30日 星期六

台灣 上市|上櫃|加權指數 爬蟲程式

前言

去年用Ruby寫的程式,主要是爬以下三個網頁:

你一定會問都有網頁查詢了,你還爬個屁阿!主要是他提供的資料都是以月份為最單位,若你要抓X年的資料你就要點12*X次,你若要抓Y檔股票,那你總共要點12*X*Y次,所以在父親大人的督促之下,就寫了這三隻爬蟲給他用,修改程式裡頭的時間範圍跟代號,就會去網頁爬一輪回來產生一隻CSV檔案(可用excel開啟)給使用者。

產生檔案範例可參考:

安裝及使用方法

  1. 安裝Ruby
  2. 到命令提示字元,執行以下指令:gem install mechanize,這是為了安裝一個用Ruby寫的函式庫。
  3. 下載檔案,解壓縮到到任意路徑。
  4. 直接編輯程式碼最下面的參數,儲存後點兩下執行即可。

修改查詢參數

可執行且需要使用者重新編輯的檔案,根據網頁連結命名分別為:

  • otc_daily_trading_info.rb
  • twse_mi5_mins_hist.rb
  • twse_stock_day.rb

需要重新編輯的程式碼大概都長得像這樣:

後話

東西寫出來沒再用也是浪費,好一陣子沒用RUBY了,遇到問題請自己上網查或買書看,不要輸給我五十幾歲的老爸。

4 則回應:

CITYWALKER 提到...

感謝!!!!

寫出這種東西
真是功德無量

前陣子才決定開始研究Ruby
至今仍一事無成的小弟
真是........

jain 提到...

資料庫是即時更新嗎?

[ 小黑宅 ] 提到...

@城市行走者
術業有專攻 :-)

@jain
資料庫不是我維護的
是證交所維護的

匿名 提到...

您好,

找了許多下載大盤指數的網頁,
看到您的rb程式,把ruby裝了起來,
先試跑看看,
otc_daily_trading_info.rb OK
會在 report 資料夾下產生
csv檔,

twse_mi5_mins_hist.rb
twse_stock_day.rb
這兩個程式似乎沒反應,
是證交所的網頁程式檔名修改了嗎?

我有找到可捉到每日行表的語法,並可直接存檔excel csv 檔,
但加權指數歷史資料可以嗎? 感恩囉!

每日行表的語法:
http://www.twse.com.tw/ch/trading/exchange/MI_INDEX/MI_INDEX3_print.php?genpage=genpage/Report201006/A11220100611ALL_1.php&type=csv

我亂試,好像找不到正確的方法:
http://www.twse.com.tw/ch/trading/indices/MI_5MINS_HIST/MI_5MINS_HIST.php?myear=98&mmon=05&save=csv

stiven 留

Related Posts Plugin for WordPress, Blogger...