使用 Travis CI 自動發布 hexo 到 Github pages

Hexo 雖然已經提供很好的指令來更新和發布文章,但是仍然嫌不夠懶人啊 XDD

-
認真原因: 原本的作法只能讓產生檔案後的靜態 HTML/CSS/Javascript 等內容放到 Github 上,然後透過 Github pages 自動展示網頁 (也就是目前看到的 blog)。但這樣無法將原始文字檔 (raw Markdown documents),設定檔 (config) 保存在遠端,就失去部分使用 Github 等 remote repository 的意義了。
-

原始方法

只有單一分支 (master),並手動產生靜態檔然後透過 git 提交發布靜態檔上的變更。

原本使用 hexo-deployer-git 來發布,只需要底下這些設定。當然必須先自行設定好 Github SSH Key 或者 Personal Access Token),兩者 URL 分別長這樣:

  • Github SSH Key: for git@github.com:leVirve/leVirve.github.io.git
  • Personal Access Token: for https://$DEPLOY_TOKEN@github.com/leVirve/leVirve.github.io.git

這邊我選擇使用 ssh key 方法的 Repo. URL,因為平常就有一把在 Github 操作用的 key。

_config.yml
1
2
3
4
5
6
7
8
9
# Deployment
## Docs: http://hexo.io/docs/deployment.html
deploy:
type: git
repo: git@github.com:leVirve/leVirve.github.io.git
branch: master
message: push by hexo-deploy

然後打開 terminal 快樂地打上兩行指令就完成文章更新和發布了!

1
2
$ hexo generate # 可縮寫成 => hexo g
$ hexo deploy # 可縮寫成 => hexo d

兩行指令還不夠簡單嗎?!?!原本我也覺得指令已經這麼簡單又有縮寫,幹嘛再去折騰弄一堆奇技。

閱讀全文

Dcard 爬蟲於 Python 實作成果:dcard-spider

上次談到了 Dcard 現在官方實際 production 中使用的 API URL 規則,並且撰寫了簡單的 Python scripts 來取得小部分資料。
而這樣的成果適合用來做小規模的後續應用,例如特定版的當日或當月文章分析等等;然而若是要拿下全站的資料,那麼我們上次的程式範例本身必須要改善來讓後續方便擴充(其實是上次程式趕工寫太醜,生理上不能接受(?) 完全沒有想要直接沿用的念頭 XD)。

那麼接下來的概念就是:

  1. 我要一隻大蜘蛛(比起 crawler,我選擇 Spider!聽起來就比較猛,以下都用 spider 稱呼這隻網路爬蟲 顆顆)

    [Giant spider strikes from wiki]
  2. 那除了核心的軀幹之外需要先造八隻 腳啊!上次那個品質...可是撐不起這隻巨型蜘蛛的

  3. 不知所云,總之就是把之前的概念打造成好用的腿就對了。之後蜘蛛好辦事!

成果已經發布在 PyPI 以及 Github 上了。

閱讀全文

Dccard 爬蟲,透過官方API

原本爬蟲使用 PTT 作為練習標的,但是年輕人好像已經不流行用這個(?),而且另一方面也不想在頁面 parsing 上花太多功夫。
這次想要練習的東西是爬蟲架構以及其他後續應用,而不再拘泥處理資料本身;所以選擇了與 PTT 相似性質且擁有 API 的 Dcard 作為實驗目標。

閱讀全文