上回說到Alexa的排名資料來源于Alexa工具條,是以排名資料并不十分準确,特别是對于中文網站來說,國内裝Alexa工具條的多是被某些網站“誤導”的使用者以及一些網站站長,是以很多人也對Alexa資料不以為然。在目前情況下,Alexa的排名還是和Google PR一樣被廣告商們看重的資料和作為衡量網站廣告投放價值的依據。
這裡講講如何擷取Alexa的資料排名。最簡單的莫過于裝上Alexa提供的工具條了,Alexa提供了Firefox和IE的版本,但純粹為了看一個網站的排名而安裝這個插件顯得有點浪費資源。我在Firefox浏覽器用的是SearchStatus這個插件,這個插件同時顯示了Google PR和Alexa排名,占用位置也不大,用起來比較友善。
本文着重要講的是如何使用從Alexa的伺服器下載下傳資料,并進行分析後應用于WP插件或提供給訪客(如 http://alexa.chinaz.com/這樣的服務)。Alexa官方提供了收費的API接口,每千次查詢$0.15(上回憑印象說是$0.1,更正一下),既然要收費,肯定沒有多少人願意花這錢了,特别在我們中國人看來更是難以了解,照理說用你Alexa的資料應該是相當給你面子,給你人氣,你還要向我收費?還好早就有人破解了Alexa工具條(貌似很多國内網站強迫要求下載下傳的Alexa工具條還經過改裝,擁有木馬功能了),并把它的伺服器接口盜取出來分享給大家了。
接口一:
http://data.alexa.com/data/+wQ411en8000lA?cli=10&dat=snba&ver=7.0&cdt=alx_vw=20&wid=12206&act=00000000000&ss=1680×1050&bw=964&t=0&ttl=35371&vis=1&rq=4&url=http://www.baidu.com
接口二:
http://data.alexa.com/data/TCaX/0+qO000fV?cli=10&dat=snba&ver=7.0&cdt=alx_vw=20&wid=31472&act=00000000000&ss=1024×768&bw=639&t=0&ttl=4907&vis=1&rq=23&url=http://www.baidu.com
接口三:
http://data.alexa.com/data/ezdy01DOo100QI?cli=10&dat=snba&ver=7.0&cdt=alx_vw=20&wid=16865&act=00000000000&ss=1024×768&bw=775&t=0&ttl=1125&vis=1&rq=2&url=http://www.baidu.com
接口四:
http://data.alexa.com/data/+wQ411en8000lA?cli=10&dat=snba&ver=7.0&cdt=alx_vw=20&wid=12206&act=00000000000&ss=1680×1050&bw=964&t=0&ttl=35371&vis=1&rq=4&url=http://www.baidu.com
事實上,分析一下這些位址可以看到它已經将使用者的浏覽器資訊,系統資訊等發送給了服務端。
ezdy01DOo100QI是aid。
“cli=10&dat=snba&ver=7.0&cdt=alx_vw=20&”這部分是固定值。
wid是個随機數。
act資料包含了Alexa Toobar功能的被使用情況。
ss很明顯是螢幕分辨率了。
bw是IE視窗的寬度。
t取值是0或1,和目前IE的window對象還有referrer有關。
ttl是目前頁面打開速度,和Site Stats中的Speed有關。
vis表明IE是否顯示工具條。
rq是對象計數器。
有了這些接口,我們就可以提供Alexa排名查詢的服務了。
通路任意上述位址任意一個,查詢baidu.com的資訊,傳回XML檔案如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <ALEXA VER="0.9" URL="baidu.com/" HOME="0" AID="=">
- <RLS PREFIX="http://" more="315">
- <RL HREF="www.3721.com/" TITLE="3 7 2 1"/>
- <RL HREF="search.21cn.com/" TITLE="21CN"/>
- <RL HREF="itsearch.ccidnet.com/" TITLE="itsearch.ccidnet.com/"/>
- <RL HREF="e.pku.edu.cn/" TITLE="e.pku.edu.cn/"/>
- <RL HREF="21cn.com/" TITLE="21cn.Com -"/>
- <RL HREF="163.com/" TITLE="163.com/"/>
- <RL HREF="search.163.com/" TITLE="search.163.com/"/>
- <RL HREF="dir.sohu.com/" TITLE="dir.sohu.com/"/>
- <RL HREF="cn.search.yahoo.com/" TITLE="cn.search.yahoo.com/"/>
- <RL HREF="yahoo.com/" TITLE="Yahoo!"/>
- </RLS>
- <SD TITLE="A" FLAGS="DMOZ">
- <TITLE TEXT="Baidu.com"/>
- <ADDR STREET="The Ideal International Bldg, 12th floor" CITY="Beijing 100080, " STATE="" ZIP="" COUNTRY="CHINA" />
- <CREATED DATE="11-Oct-1999" DAY="11" MONTH="10" YEAR="1999"/>
- <PHONE NUMBER="+86 1082607100"/>
- <OWNER NAME="Baidu.com, sillyser"/>
- <EMAIL ADDR="[email protected]"/>
- <LANG LEX="zh-CN"/>
- <LINKSIN NUM="58665"/>
- <SPEED TEXT="1062" PCT="82"/>
- <POPULARITY URL="baidu.com/" TEXT="11"/>
- <RANK DELTA="-2"/>
- <CHILD SRATING="0"/>
- <REACH RANK="13"/>
- </SD>
- <KEYWORDS>
- <KEYWORD VAL="Chinese Simplified"/>
- </KEYWORDS><DMOZ>
- <SITE BASE="baidu.com/" TITLE="Baidu.com" DESC="The leading Chinese language search engine, provides “simple and reliable� search experience, strong in Chinese language and multi-media content including MP3 music and movies, the first to offer WAP and PDA-based mobile search in China.">
- <CATS>
- <CAT ID="Top/World/Chinese_Simplified/計算機/網際網路絡/搜尋/搜尋引擎" TITLE="搜尋/搜尋引擎" CID="1005774"/>
- </CATS>
- </SITE>
- </DMOZ>
- </ALEXA>
開頭包括了一些反向連結的網站,中間是網站排名等資訊,下面是網站介紹,網站管理者可以向Alexa添加這些資訊。如果是比較不知名的小站,如我的http://photozero.net 資訊就沒有那麼全了。
在前面的文章裡提到了,調用Neekey API services的Alexa rank顯示圖檔還會提升Alexa排名,實際上指的就是在調用Alexa資料時,我們是模拟Alexa工具條進行查詢的,是以你的部落格的Alexa排名自然就提升上去了,不信您試試?我在Firefox裡裝上SearchStatus插件後,每天通路自己的部落格一會兒,眼睜睜看着Alexa排名從300W排名開外沖到目前的110W。
PHP中擷取檔案排名的方法
- $content = file_get_contents('$alexaURL'); //自行将URL放入,如果伺服器的file函數沒有開啟ALLOW_URL_OPEN 選項(如Dreamhost),應該用 fsockopen 等函數替代。
- $pattern = '/<POPULARITY URL="\s*(.+?)" TEXT="\s*(.+?)"\/>/'; //在XML中比對的 <populartity />項裡面的資料就是Alexa排名了
- preg_match($pattern, $content, $match); //進行比對搜尋
- echo $match[2]; //$match[2] 就是排名了。
- //如果需要其他資訊就自己寫個比對模式,從裡面提取出來就行了。當然用PHP提供的XML處理函數也是可以的。
除了在服務端調用進行輸出外,做個AJAX調用的查詢程式也不錯,還節省了伺服器資源。下次抽空做個放出來。
原文:http://photozero.net/get_alexa_ranking/