上次刻了一個學會行事曆的 crawler 後,本來就有在想要把學會的新聞活動也做成一個 RSS feed,趁著中秋假期,剛好有個空檔,一樣寫了一個 crawler 把學會的活動包成 RSS feed。
台灣放射線醫學會學會新聞 RSS feed: http://feed.tsai.it/trs/news.rss
因為我之前已經有打包了幾個 rss feed,當時是用 ruby 做的,雖然好像有點久沒碰 ruby 了,但為了簡化架構,還是直接在上面修改。
這次找的 gem 是 Wombat,雖然可動性不高,但勉強夠用,好處是 code 看起來比較乾淨,更有 ruby 味,例如實作的 code 如下:
result = Wombat.crawl do base_url "https://www.rsroc.org.tw/" path "News/" posts 'xpath=//*[@id="page_right"]/table[2]/tr', :iterator do title 'xpath=td[1]' url 'xpath=td/a/@href' date 'xpath=td[2]' content 'xpath=td/a', :follow do |c| c.html 'xpath=//*[@id="page_right"]/table[2]/tr[3]/td/div', :html end end end
這個 feed 放在 Heroku 上, 好處是因為消耗的資源不多,免費的機器就夠用,對 ruby 一些 framework 的 support 很好,deploy 容易,缺點是還沒辦法加 SSL(要上免費的 Let’s encrpyt 要用付費的 Dyno 才有),或許哪天不得已的時候,再搬回自己的 VPS 上吧!