顯示具有 Ruby 標籤的文章。 顯示所有文章
顯示具有 Ruby 標籤的文章。 顯示所有文章

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

前言

去年用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了,遇到問題請自己上網查或買書看,不要輸給我五十幾歲的老爸。

像個技客寫部落格 - jekyll

早上看到這篇Jekyll: A Ruby-Powered Static Site Generator,就順手安裝測試來玩,此為無聊筆記紀錄一下我有作過這些事。

jekyll

是由Tom Preston-Werner(Github的編寫者?)所編寫的OpenSource。jekyll是一個很簡單使用的部落格文章內容生產器,傳入TextileMarkdown這類的Lightweight Markup Language,它便會根據你建立好的設定檔案(網頁的基本版型'、CSS…),最終產出一個架構完整的資料夾(內含html檔案、css檔案及其他會引用到的資料夾)。而我們最後所要做的只要把這個資料夾到網站主機上(例如:Apache)就可以了。

使用流程

建立環境

首先你要有安裝Ruby,接下來只是簡單把jekyll給gem回來即可。

參考:http://wiki.github.com/mojombo/jekyll/install

檔案架構

我沒有仔細看有無可以快速建立一個專案架構的script,所以我是參考原作者的jekyll專案,一個一個慢慢自己建立的,如下圖所示:

_config.yml檔案

主要是用來設定jekyll啟動相關的參數。

參考:http://wiki.github.com/mojombo/jekyll/configuration

_layouts資料夾

基本上裡頭要建立的是HTML檔案,主要用來架構Blog版面的骨架。

檔案最上面是YAML Front Matter用來設定變數,比如說我這邊就指定在這之前,必須先通過同是在_layouts資料夾下的default.html,藉此可以排除掉不斷DRY的html語法。

_posts資料夾

這也是我們放置文章的地方,檔名要符合”年-月-日-標題.副檔名”這樣的格式,檔案格式就是上面所提的Lightweight Mackup Language。這些檔案最後都會被轉成html。

_site資料夾

根據設定(外貌)及_posts資料夾下的文字檔案(內容),最終產生的所有html檔案都會放在此處,這就是最後可以直接放在網站主機上的檔案結構。

index.html

首頁檔案。

參考:http://wiki.github.com/mojombo/jekyll/usage

執行

把上述步驟完成,執行

jekyll –server

jekyll就會把產生_site資料夾,所有靜態的網頁檔案都放在其中,同時也可以在瀏覽器透過 http://localhost:4000 預覽網頁的效果。

部屬

就是把_site資料夾底下的所有檔案上傳到網頁主機上。

參考:http://wiki.github.com/mojombo/jekyll/deployment

RssPlurker

一直以來都是GoogleReader來分享文章,自從越來越多朋友玩噗浪之後,分享文章慢慢變成一種很DRY(Don’t Repeat Yourself)的事,在GoogleReader看到不錯的文章,一下忙著按下分享,一下忙著貼上噗浪,最後還要想看看是否要msn還是轉寄給家人。

不知道是不是有現成的軟體下,就直接開使用ruby開始寫工具了!不是我愛重造輪子,是我很慘每次學東就忘西,寫些程式好讓我喚回我對ruby的記憶。邊程相關應該沒啥人有興趣,我最直接寫在最後了。

使用對象

  • 想把rss直接噗上噗浪的人。
  • 電腦有裝ruby。
  • 知道ruby不是紅寶石的人。

使用方法

  1. http://gist.github.com/157918 下載,或是直接剪貼下方程式碼。
  2. 編輯程式碼貼上噗浪帳號、密碼和rss連結。
  3. 點兩下執行。

PS: 此程式需要用到simple-rss和mechanize,使用者必須要gem回來。

使用效果

  1. 程式一開始會去找rss的所有文章,但並不會把這些文章噗上噗浪。
  2. 程式開啟之後,rss若有新增文章程式才會把這些文章貼上噗浪。

關於噗浪這部份都是參考XDite大的Unofficial Plurk API in Ruby,最後發現自己用不到那麼多方法,所以只把有需要的部份加入到自己的程式碼中,順便從XDite的程式碼中得知mechanize這個跟網站互動的API。rss的部份因為GoogleReader輸出的是atom格式,所以沒有用內建的API改用simple-rss來讀取。

心得就是雙修的下場是兩邊技能都不太強,我英文跟日文的學習進度也有一樣的情況。然後不要玩太兇,要不然下場就跟我一樣(如下圖),暗!