回答

收藏

分别统计百度PC蜘蛛和移动蜘蛛并输出txt的php代码

SEO交流 SEO交流 92 人阅读 | 0 人回复 | 2024-10-27

以前分享过的记录百度蜘蛛抓取链接为txt的代码只能笼统的实现百度蜘蛛的记录,不能区分百度PC蜘蛛和移动蜘蛛。

现在越来越多的人说百度PC蜘蛛不收录,要移动蜘蛛才行,所以特意编写了这段代码,本代码可区别判断百度PC蜘蛛和移动蜘蛛!

其实核心是对百度蜘蛛是移动还是PC标识的判断,不过一个IF判断而已。

有了这个判断,我们还可以进行延伸,比如写PHP控制屏蔽百度PC蜘蛛抓取,只要百度移动蜘蛛抓取的代码。

好了废话不多说,直接看代码。

  1. <?php
  2. //php直接输出蜘蛛日志
  3. function get_naps_bot()
  4. {
  5. //获取用户UA并转换为小写
  6. $tlc_thispage = strtolower($_SERVER['HTTP_USER_AGENT']);
  7. if (strpos($tlc_thispage, 'baiduspider') !== false){
  8.     return 'Baidu';
  9. }
  10.     return false;
  11. }
  12. //获取当前时间
  13. function nowtime(){
  14.     $date=gmdate("Y-n-j H:i:s",time()+8*3600);
  15.     return $date;
  16. }
  17. $searchbot = get_naps_bot();
  18. if ($searchbot) {
  19.     //对页面UA进行处理,它主要是对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()
  20.     $useragent = strtolower(addslashes($_SERVER['HTTP_USER_AGENT']));
  21.     $url=$_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
  22.     if(strpos($useragent,"android") || strpos($useragent,"iphone") || strpos($useragent,"mobile")){
  23.         $file="Baidu-Mobile-Spiderlogs.txt";//如果是百度移动蜘蛛,输出到根目录任意命名方便访问即可
  24.     }else{
  25.         $file="Baidu-Pc-Spiderlogs.txt";//如果是百度PC动蜘蛛,输出到根目录任意命名方便访问即可
  26.     }
  27.     $time=nowtime();//获取当前时间
  28.     $data=fopen($file,"a");
  29.     fwrite($data,"Time:$time robot:$searchbot URL:$url\n");//输出日志
  30.     fclose($data);
  31. }
  32. ?>
复制代码

在上面的代码中,为记录UA的含义,以前我们分享过的输出蜘蛛统计代码都用用到,但实际并未调用。

  1. <font style="color:rgb(90, 90, 90)"><font face="&quot"><font style="font-size:14.7px">addslashes($_SERVER['HTTP_USER_AGENT'])</font></font></font>
复制代码

本文转载于:https://www.niuniubbs.com/thread-5069-1-2.html


分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则