說是逃避問題, 其實也要認真面對.
抓取的機械人(Web-Robot), 我用了Shell Script來做. Script出奇地短(有更短的, 請告訴我, 切磋切磋), 只有17行quick and dirty[註1], and impolite[註2]的code. 但為免引致Mysinablog的Web Server負荷突然大量增加, 恕我不能在這裡公開源碼, 有興趣的, 請在留言留下Email Address給我.
好了, 萬事俱備, 可以開始了. 但開始前, 我還是得先不嫌其煩的聲明一下. 下面所顯示的結果, 並不代表所有Mysinablog的數量, 那只代表以超連結(Hyperlink)相連起來的Blog的數量. 就是說, 前文所說的孤島Blog, 並不會包括在內. 再者, 所謂的超連結, 並不包括Web2.0式, AJAX[註3]動態產生的超連結, 例如Newsgator的Blogroll或聯播系統的好友新文.
戲肉要來了. 我選了譚劍為線頭, 貪他連結夠多, 又沒有用Newsgator或聯播系統.
程式一跑, Bandwidth給「扯乾」, 不能上網了, 我唯有納悶的等. 一等, 就是四個小時. 結果有了, 燈燈燈凳, 一共找到2291條連結(as at 14-May), 詳細名單在這裡. 結論是, 「不計算孤島Blog, Mysinablog有互相連結的, 一共有2291個Blog.」再者, 因為電腦共用了6個loop跑完所有結果, 所以, 從譚劍出發, 最遠的Blog, 只要6個連結就可找上門. 再花點時間分析其他Blog的連結關係, 不知會否得出Six degrees of separation的結果呢?
看來, 按前文所定義的「香港Blogosphere」, 計算Blogosphere的單位, 肯定不是以「百萬」計, 而說是以「千」計或「萬」計, 亦不為過了.
這些抓到的數據, 分析下去, 其實還能說很多故事. 不過, Out of Topic了. 就學衛斯理的口吻, 「那當然是另外一個故事了.」 好, 玩完小圈子, 也算是取得了一點經驗. 下次投奔公海, 研究整個香港Blogosphere的「博駁博」.
(續)
[註1] quick and dirty乃一種偉大的編程態度. 簡單來說, 就是為求目的, 不擇手段. 只但求程式能跑, 而置Performance, Coding Style和Maintanace於不顧. 基本上, 所有Programmer都有雙重標準, 自己都會做這事, 但痛恨其他Programmer這麼做, 每每看見別人寫的quick and dirty code時, 都會爆一句:「X, 點X樣改呀!」
[註2] 請原諒我完全沒有理會Mysinablog的robots.txt. 在Web-Robot界, 這是一個不禮貌的行為. 看不明的朋友, 請看 : http://en.wikipedia.org/wiki/Web_crawler#Politeness_policy. 再看不明的, 當我打茅波好了. 原諒我的打茅波吧, 一次咁多啫!
[註3] AJAX, 可是Web-Robot的敵人呢.
那些「博駁博」 難題真的很難, 難到想逃避. 逃避有一個辨法, 就是把範圍縮小, 小至一個BSP - Mysinablog. 如此, 那三個難題就暫不用回答, 因為, 只要看見Domain是mysinablog.com, 抓取就行了, 不必在乎它是不是blog, 是不是繁體字, 是不是香港Blog. 因為他們肯定都是.
[4] Re:
[3]
[2] Re:
|
是呀, 所以我己經清楚定義了研究範圍囉. 又, 我認, 我打茅波, 但一次咁多. 又, ISP應該唔會block我, 要block的話BT扯得仲行. 其實我計算過, BSP也不會有甚麼太大的負荷. 四小時處理幾千條link, 對一般如Mysinablog的大型網站來說, 非常濕碎囉. 但是, 對於公開源碼任人用, 我就有所保留了. poonwinghang : |
|
[1]
|
咁都有好多人唔係blog 上面加連結嘛… 不過,你咁寫程式扯Bandwidth,服務供應商(ISP 也好、BSP 也好),可能會band 你IP 啊。因為當左你係spam。 |
|




