昨天半夜被 Google 擋掉

要問一個網站的 Pagerank 值可以透過這個方法得到:

http://www.google.com/search?client=navclient-auto&ch=67767091331025190914&features=Rank&q=info:http://sitestates.com

會得到一個內容會像是:Rank_1:1:8 (表示 PageRank =8),這時候再用 explode 或是 regex 把 8 弄出來,就是你的 PR 值。

P.S. 第一個粗體標示的參數可以透過運算得到,方法這邊省略,第二個粗體標示的參數表示你想查詢網站的 URL 。

— 然後上面不是重點 —

當我們想知道大量 URL 的 PageRank 是多少時,就得想個辦法分批去問 Google 。因為同時開一堆連線去問 Google ,問不到一千次就會被擋掉 (吐 403 Forbidden 給你),然後謝謝再聯絡。

所以很久以前,我設計了一個很簡單的快取機制:每次要顯示 PageRank 之前,都會先去檢查本地的 PageRank Cache 如果有 Cache 而且沒有 expire 的話,那就讀本地的 Cache 不要去打擾 Google, 如果那一筆 Cache 資料已經 Expire 掉了,那就乖乖去問 Google 新的 PageRank 是多少。

這是個好設計,不過壞就壞在我很懶惰,所以之前所有的 PR 都存硬碟的檔案系統中。(慘慘慘)

昨晚我想更動這個設計,把 PageRank 存到資料庫中,因為我懶得寫轉換程式,加上當時深夜了,腦袋不清楚,所以弄錯了一些地方,於是我就被 Google 檔掉了,接著我發揮鍥而不捨的精神,換個 IP 再來一次,然後我又被擋掉了。

就這樣,昨天懷著忐忑不安的心情入睡,今天早上到了公司還是很悶,忍不住偷偷再試了一下,沒想到 Google 已經自動幫我解開了(我超開心,這樣就不用寫信去道歉懺悔了,真是大好人啊啊啊,是看在我是初犯的份上嗎? A_Ay ),因為 Google 放過了我,所以我乖乖寫了轉換程式,把硬碟裡面舊的資料全數轉換到資料庫中 (轉出三千多筆尚未過期的資料,這樣可以少問 Google 三千多次),然後再故意把幾筆測試資料弄過期,以便測試,嗯!幾經折騰一切看起來都沒問題了…

感謝 Google 原諒我,我以後寫程式一定會先測試好再放到網路上的!


轉換後的結果

Posted in computers
One comment on “昨天半夜被 Google 擋掉
  1. 豬小妹 says:

    驚驚!太可怕了~

Leave a Reply

Your email address will not be published.