首页 > 开发 > PHP > 正文

PHP代码实现爬虫记录——超管用

2024-05-04 23:38:30
字体:
来源:转载
供稿:网友

这篇文章主要通过创建crawler数据库,使用robot.php记录来访的爬虫信息从而将信息插入数据库,从而使用php代码实现爬虫记录,有需要的小伙可以来参考下。

实现爬虫记录本文从创建crawler 数据库,robot.php记录来访的爬虫从而将信息插入数据库crawler,然后从数据库中就可以获得所有的爬虫信息。实现代码具体如下:

数据库设计

 

 
  1. create table crawler  
  2. (  
  3. crawler_ID bigint() unsigned not null auto_increment primary key, 
  4. crawler_category varchar() not null
  5. crawler_date datetime not null default '-- ::'
  6. crawler_url varchar() not null
  7. crawler_IP varchar() not null 
  8. )default charset=utf; 

以下文件 robot.php 记录来访的爬虫,并将信息写入数据库:

 

 
  1. <?php 
  2. $ServerName = $_SERVER["SERVER_NAME"] ;  
  3. $ServerPort = $_SERVER["SERVER_PORT"] ;  
  4. $ScriptName = $_SERVER["SCRIPT_NAME"] ;  
  5. $QueryString = $_SERVER["QUERY_STRING"];  
  6. $serverip = $_SERVER["REMOTE_ADDR"] ;  
  7. $Url="http://".$ServerName; 
  8. if ($ServerPort != ""
  9. $Url = $Url.":".$ServerPort ; 
  10. }  
  11. $Url=$Url.$ScriptName; 
  12. if ($QueryString !=""
  13. $Url=$Url."?".$QueryString; 
  14. }  
  15. $GetLocationURL=$Url ; 
  16. $agent = $_SERVER["HTTP_USER_AGENT"];  
  17. $agent=strtolower($agent); 
  18. $Bot =""
  19. if (strpos($agent,"bot")>-) 
  20. $Bot = "Other Crawler"
  21. if (strpos($agent,"googlebot")>-) 
  22. $Bot = "Google"
  23. }  
  24. if (strpos($agent,"mediapartners-google")>-) 
  25. $Bot = "Google Adsense"
  26. if (strpos($agent,"baiduspider")>-) 
  27. $Bot = "Baidu"
  28. if (strpos($agent,"sogou spider")>-) 
  29. $Bot = "Sogou"
  30. if (strpos($agent,"yahoo")>-) 
  31. $Bot = "Yahoo!"
  32. if (strpos($agent,"msn")>-) 
  33. $Bot = "MSN"
  34. if (strpos($agent,"ia_archiver")>-) 
  35. $Bot = "Alexa"
  36. if (strpos($agent,"iaarchiver")>-) 
  37. $Bot = "Alexa"
  38. if (strpos($agent,"sohu")>-) 
  39. $Bot = "Sohu"
  40. if (strpos($agent,"sqworm")>-) 
  41. $Bot = "AOL"
  42. if (strpos($agent,"yodaoBot")>-) 
  43. $Bot = "Yodao"
  44. if (strpos($agent,"iaskspider")>-) 
  45. $Bot = "Iask"
  46. require("./dbinfo.php"); 
  47. date_default_timezone_set('PRC');  
  48. $shijian=date("Y-m-d h:i:s", time()); 
  49. // 连接到 MySQL 服务器 
  50. $connection = mysql_connect ($host, $username, $password); 
  51. if (!$connection) 
  52. die('Not connected : ' . mysql_error()); 
  53. // 设置活动的 MySQL 数据库 
  54. $db_selected = mysql_select_db($database, $connection); 
  55. if (!$db_selected) 
  56. die ('Can/'t use db : ' . mysql_error()); 
  57. // 向数据库插入数据 
  58. $query = "insert into crawler (crawler_category, crawler_date, crawler_url, crawler_IP) values ('$Bot','$shijian','$GetLocationURL','$serverip')"
  59. $result = mysql_query($query); 
  60. if (!$result) 
  61. die('Invalid query: ' . mysql_error()); 
  62. ?> 

成功了,现在访问数据库即可得知什么时候哪里的蜘蛛爬过你的什么页面。

 

 
  1. view sourceprint? 
  2. <?php 
  3. include './robot.php'
  4. include '../library/page.Class.php'
  5. $page = $_GET['page']; 
  6. include '../library/conn_new.php'
  7. $count = $mysql -> num_rows($mysql -> query("select * from crawler")); 
  8. $pages = new PageClass($count,,$_GET['page'],$_SERVER['PHP_SELF'].'?page={page}'); 
  9. $sql = "select * from crawler order by "
  10. $sql .= "crawler_date desc limit ".$pages -> page_limit.",".$pages -> myde_size; 
  11. $result = $mysql -> query($sql); 
  12. ?> 
  13. <table width=""
  14. <thead> 
  15. <tr>  
  16. <td bgcolor="#CCFFFF"></td>  
  17. <td bgcolor="#CCFFFF" align="center" style="color:#">爬虫访问时间</td>  
  18. <td bgcolor="#CCFFFF" align="center" style="color:#">爬虫分类</td> 
  19. <td bgcolor="#CCFFFF" align="center" style="color:#">爬虫IP</td> 
  20. <td bgcolor="#CCFFFF" align="center" style="color:#">爬虫访问的URL</td> 
  21. </tr> 
  22. </thead> 
  23. <?php 
  24. while($myrow = $mysql -> fetch_array($result)){ 
  25. ?> 
  26. <tr> 
  27. <td width=""><img src="../images/topicnew.gif" /></td> 
  28. <td width="" style="font-family:Georgia"><? echo $myrow["crawler_date"] ?></td> 
  29. <td width="" style="color:#FA"><? echo $myrow["crawler_category"] ?></td> 
  30. <td width=""><? echo $myrow["crawler_IP"] ?></td> 
  31. <td width=""><? echo $myrow["crawler_url"] ?></td> 
  32. </tr> 
  33. <?php 
  34. ?> 
  35. </table> 
  36. <?php 
  37. echo $pages -> myde_write(); 
  38. ?> 

以上代码就是PHP代码实现爬虫记录——超管用的全部内容,希望对大家有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表