2014年5月29日 星期四

[Linux] 讓 git checkout/diff 略過 file permission 屬性

最近把 git 當作 deployment 過程的一環,接著就會碰到一個問題,有時因為需求要調整 file permission ,此時就會造成 git checkout 失敗,要求要先 merge 在行動。雖然 file permission 容易出現在 Windows / Linux ,但在 Linux 環境用 git 當作 deployment 時,也常有身份、權限的改變而造成一樣的影響。

解法:

$ git config core.fileMode false



$ git -c core.fileMode=false diff
$ git -c core.fileMode=false checkout

2014年5月25日 星期日

[NodeJS] 使用 WebShot 進行網頁截圖、顯示正確的中文(CJK)等編碼 @ Ubuntu 14.04 Server



把玩一下 node.js ,發現有個套件不錯叫做 webshot,非常簡易地就可以把網站截取下來。然而,在 Ubuntu 14.04 server 版上運行時,發現無法正常顯示中文字,需要額外處理,就筆記一下:

安裝 Node.js:

$ sudo apt-get install nodejs npm
$ sudo ln -s /usr/bin/nodejs  /usr/bin/node


使用 webshot:

$ mkdir ~/webshot
$ cd ~/webshot
$ npm install webshot
$ vim test.js
var webshot = require('webshot');
webshot('tw.yahoo.com', 'yahoo.png', function(err) {
if(err)
       console.log(err);
} );
$ nodejs test.js


然而,無法顯示中文字,簡言之就是缺字型,安裝一下即可:

$ sudo apt-get install xfonts-wqy

成果一切正常:

2014年5月23日 星期五

使用 Wget 進行簡易的 Web Crawling

$ wget --recursive --no-clobber --html-extension --convert-links --no-parent --wait 5 --domains example.com www.example.com

如此一來,會在當前目錄建立 www.example.com 目錄,將依照網站目錄結構存儲起來。

使用 lnyx 抽取 Web Page 所有的 Links

沒想到 lynx 真好用 XD 比用 Wget 好的地方是不用去重組一些 relative link,那缺點就會是要避開同一個 page 的 anchor (<a href="#me></a>) 用法,但是...有些 Javascript 的或是其他 MVC 架構的網站,仍會用 anchor 來取資料。

$ lynx -dump -listonly https://tw.yahoo.com | grep -o '^\s\{1,\}[0-9]\{1,\}..*$' | sed -e 's/^[[:space:]]\{1,\}[0-9]\{1,\}\.[[:space:]]//g' | uniq

2014年5月22日 星期四

使用 Wget 抽取 Web Page 所有的 Links (關鍵字 href="")

簡易用 Wget 達成:

$ wget -q --no-check-certificate -O - https://tw.yahoo.com | grep -o 'href=['"'"'"][^"'"'"'#]*['"'"'"]' | sed -e 's/^href=["'"'"']//' -e 's/["'"'"']$//' | grep -v "javascript:" | uniq 註:wget 有 --convert-links 可用