我们通会用Alexa的网站(或其它站长工具网站)来栓查我们的网站流量排名,这样就必须去那些网站。实际上,可以通过Alexa XML API 获取网站的Alexa相关的数据(XML格式的),再使用XML解析器来解析Alexa返回的XML,得到Alexa排名或其它的数据。
Alexa接口
Alexa的XML API接口是:http://data.alexa.com/data?cli=10&url=%YOUR_URL%
如果想获取更多的数据可以用:http://data.alexa.com/data?cli=10&dat=snbamz&url=%YOUR_URL%
用http://data.alexa.com/data?cli=10&dat=snbamz&url=phpstudy.net返回的数据如下:
<ALEXA VER=\"0.9\" URL=\"phpstudy.net/\" HOME=\"0\" AID=\"ScELh1AI3f00az\" IDN=\"phpstudy.net/\">
<RLS PREFIX=\"http://\" more=\"0\"></RLS>
<SD TITLE=\"A\" FLAGS=\"\" HOST=\"phpstudy.net\">
<LINKSIN NUM=\"1\"/>
</SD>
<SD>
<POPULARITY URL=\"phpstudy.net/\" TEXT=\"7552101\" SOURCE=\"panel\"/>
<REACH RANK=\"6342897\"/>
</SD>
</ALEXA>
其中POPULARITY元素中的TEXT属性的值7552101就是Alexa排名。
代码实现:
用PHP实现通过Alexa API 获取Alexa排名的代码为:
<php>
function getAlexaRank ($Domain){
$line = \"\";
$data = \"\";
$URL = \"http://data.alexa.com/data/?cli=10&dat=snba&url=\". $Domain ;
$fp = fopen ($URL ,\"r\");
if ($fp ){
while (!feof ($fp )){
$line = fgets ($fp );
$data .= $line ;
}
$p= xml_parser_create ();
xml_parse_into_struct ($p , $data , $vals );
xml_parser_free ($p );
for ($i =0 ;$i <count ($vals );$i ++){
if ($vals [$i ][\"tag\"]==\"POPULARITY\"){
return $vals [$i ][\"attributes\"][\"TEXT\"];
}
}
}
}
?>
使用方法:
<?php
echo getAlexaRank(\"phpstudy.net\");
?>