php抓取alexa网页内容 提取站点统计信息

任务:根据输入的域名 统计以下三个数据,第一:全球排名;第二:用户量(月平均值);第三:

人均页面访问量(月平均值)。

 

 

思路:使用get_file_contents提取出网页内容,再根据正则表达式进行内容的筛选。

 

核心函数如下:

<?php
/*
 the function of getting aleax data
 @param string partten  ;the url set
 @return array partten ;

*/
 function get_alexa_data($url)
 {
  $a_url = explode(PHP_EOL,$url);
  
  $index = count($a_url);
  if(function_exists('file_get_contents'))
  {
   $result = array();
   $pattern = "|<div//sclass=/"data[^/"]+?/">[^>]*?>[^>]*?([//d,]+)//s*?</div>[//S//s]*?id=/"reach[//S//s]*?<th>1".
"//smonth[//S//s]*?class=/"avg.*?([//d//.]+)</td[//S//s]*?id=/"pageviews_per_user/"[//S//s]*?".
"1//smonth[//S//s]*?class=/"avg.*?([//d//.]+)</td|";
   
   for($i = 0; $i < $index; $i++)
   {
    if(!empty($a_url[$i]))
    {
     $content = file_get_contents('http://www.alexa.com/siteinfo/'.$a_url[$i]);
     if(!preg_match($pattern,$content,$result[$a_url[$i]]))
      $result[$a_url[$i]]=array('Not Found','Not Found','Not Found','Not Found');
    }
   }
  }
  else
   die("the function file_get_contents not found!");
  return $result;
 }
?>

 

 

改变上面的正则表达式,可以满足自己的另外要求。

上面函数使用的前置条件是:alexa提供的查询网址格式'http://www.alexa.com/siteinfo/‘不变。

 

 

使用例程:

<table>
<tr>
<td>site</td><td>全球排名</td><td>用户量(月平均值)</td><td>人均页面访问量(月平均值)</td>
</tr>
<?php

 $alexa = get_alexa_data($_POST['url']);
 
 foreach($alexa as $site => $item)
 {
  echo "<tr><td>$site</td><td>$item[1]</td><td>$item[2]</td><td>$item[3]</td></tr>"; 
 }

?>

</table>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值