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


Posted in PHP onJuly 31, 2015

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

数据库设计

create table crawler  
(  
 crawler_ID bigint() unsigned not null auto_increment primary key,
 crawler_category varchar() not null,
 crawler_date datetime not null default '-- ::',
 crawler_url varchar() not null,
 crawler_IP varchar() not null
)default charset=utf;

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

<?php
 $ServerName = $_SERVER["SERVER_NAME"] ; 
 $ServerPort = $_SERVER["SERVER_PORT"] ; 
 $ScriptName = $_SERVER["SCRIPT_NAME"] ; 
 $QueryString = $_SERVER["QUERY_STRING"]; 
 $serverip = $_SERVER["REMOTE_ADDR"] ; 
 $Url="http://".$ServerName;
 if ($ServerPort != "")
 {
  $Url = $Url.":".$ServerPort ;
 } 
 $Url=$Url.$ScriptName;
 if ($QueryString !="")
 {
  $Url=$Url."?".$QueryString;
 }  
 $GetLocationURL=$Url ;
 $agent = $_SERVER["HTTP_USER_AGENT"]; 
 $agent=strtolower($agent);
 $Bot ="";
 if (strpos($agent,"bot")>-)
 {
  $Bot = "Other Crawler";
 }
 if (strpos($agent,"googlebot")>-)
 {
  $Bot = "Google";
 }   
 if (strpos($agent,"mediapartners-google")>-)
 {
  $Bot = "Google Adsense";
 }
 if (strpos($agent,"baiduspider")>-)
 {
  $Bot = "Baidu";
 }
 if (strpos($agent,"sogou spider")>-)
 {
  $Bot = "Sogou";
 }
 if (strpos($agent,"yahoo")>-)
 {
  $Bot = "Yahoo!";
 }
 if (strpos($agent,"msn")>-)
 {
  $Bot = "MSN";
 }
 if (strpos($agent,"ia_archiver")>-)
 {
  $Bot = "Alexa";
 }
 if (strpos($agent,"iaarchiver")>-)
 {
  $Bot = "Alexa";
 }
 if (strpos($agent,"sohu")>-)
 {
  $Bot = "Sohu";
 }
 if (strpos($agent,"sqworm")>-)
 {
  $Bot = "AOL";
 }
 if (strpos($agent,"yodaoBot")>-)
 {
  $Bot = "Yodao";
 }
 if (strpos($agent,"iaskspider")>-)
 {
  $Bot = "Iask";
 }
 require("./dbinfo.php");
 date_default_timezone_set('PRC'); 
 $shijian=date("Y-m-d h:i:s", time());
 // 连接到 MySQL 服务器
 $connection = mysql_connect ($host, $username, $password);
 if (!$connection)
 {
  die('Not connected : ' . mysql_error());
 }
 // 设置活动的 MySQL 数据库
 $db_selected = mysql_select_db($database, $connection);
 if (!$db_selected)
 {
  die ('Can\'t use db : ' . mysql_error());
 }
 // 向数据库插入数据
 $query = "insert into crawler (crawler_category, crawler_date, crawler_url, crawler_IP) values ('$Bot','$shijian','$GetLocationURL','$serverip')";
 $result = mysql_query($query);
 if (!$result)
 {
  die('Invalid query: ' . mysql_error());
 }
?>

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

view sourceprint?
<?php
include './robot.php';
include '../library/page.Class.php';
$page = $_GET['page'];
include '../library/conn_new.php';
$count = $mysql -> num_rows($mysql -> query("select * from crawler"));
$pages = new PageClass($count,,$_GET['page'],$_SERVER['PHP_SELF'].'?page={page}');
$sql = "select * from crawler order by ";
$sql .= "crawler_date desc limit ".$pages -> page_limit.",".$pages -> myde_size;
$result = $mysql -> query($sql);
?>
<table width="">
 <thead>
  <tr> 
   <td bgcolor="#CCFFFF"></td> 
   <td bgcolor="#CCFFFF" align="center" style="color:#">爬虫访问时间</td> 
   <td bgcolor="#CCFFFF" align="center" style="color:#">爬虫分类</td>
   <td bgcolor="#CCFFFF" align="center" style="color:#">爬虫IP</td>
   <td bgcolor="#CCFFFF" align="center" style="color:#">爬虫访问的URL</td>
  </tr>
 </thead>
<?php
while($myrow = $mysql -> fetch_array($result)){
?>
<tr>
 <td width=""><img src="../images/topicnew.gif" /></td>
 <td width="" style="font-family:Georgia"><? echo $myrow["crawler_date"] ?></td>
 <td width="" style="color:#FA"><? echo $myrow["crawler_category"] ?></td>
 <td width=""><? echo $myrow["crawler_IP"] ?></td>
 <td width=""><? echo $myrow["crawler_url"] ?></td>
</tr>
<?php
 }
?>
 </table>
<?php
 echo $pages -> myde_write();
?>

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

PHP 相关文章推荐
一个php作的文本留言本的例子(六)
Oct 09 PHP
一个连接两个不同MYSQL数据库的PHP程序
Oct 09 PHP
smarty巧妙处理iframe中内容页的代码
Mar 07 PHP
PHP中比较两个字符串找出第一个不同字符位置例子
Apr 08 PHP
ThinkPHP入口文件设置及相关注意事项分析
Dec 05 PHP
在win系统安装配置 Memcached for PHP 5.3 图文教程
Mar 03 PHP
php实现给一张图片加上水印效果
Jan 02 PHP
PHP中抽象类和抽象方法概念与用法分析
May 24 PHP
替换php字符串中的单引号为双引号的方法
Feb 16 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
Oct 21 PHP
laravel 解决后端无法获取到前端Post过来的值问题
Oct 22 PHP
解决PhpStorm64不能启动的问题
Jun 20 PHP
PHP 前加at符合@的作用解析
Jul 31 #PHP
PHP查看当前变量类型的方法
Jul 31 #PHP
如何把php5.3版本升级到php5.4或者php5.5
Jul 31 #PHP
PHP内核探索:哈希表碰撞攻击原理
Jul 31 #PHP
如何使用纯PHP实现定时器任务(Timer)
Jul 31 #PHP
利用PHP将部分内容用星号替换
Apr 21 #PHP
php之static静态属性与静态方法实例分析
Jul 30 #PHP
You might like
探讨如何在PHP开启gzip页面压缩实例
2013/06/09 PHP
PHP常见漏洞攻击分析
2016/02/21 PHP
excel操作之Add Data to a Spreadsheet Cell
2007/06/12 Javascript
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
2010/03/07 Javascript
Jquery异步请求数据实例代码
2011/12/28 Javascript
jquery表格内容筛选实现思路及代码
2013/04/16 Javascript
文字溢出实现溢出的部分再放入一个新生成的div中具体代码
2013/05/17 Javascript
javascript闭包的高级使用方法实例
2013/07/04 Javascript
PassWord输入框代码分享
2016/06/07 Javascript
Bootstrap作品展示站点实战项目2
2016/10/14 Javascript
前端开发之CSS原理详解
2017/03/11 Javascript
基于angular实现模拟微信小程序swiper组件
2017/06/11 Javascript
JS禁止浏览器右键查看元素或按F12审查元素自动关闭页面示例代码
2017/09/07 Javascript
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
nodejs async异步常用函数总结(推荐)
2017/11/17 NodeJs
Vue弹出菜单功能的实现代码
2018/09/12 Javascript
Vue中控制v-for循环次数的实现方法
2018/09/26 Javascript
JavaScrip数组去重操作实例小结
2019/06/20 Javascript
Vue组件通信中非父子组件传值知识点总结
2019/12/05 Javascript
JS获取当前时间戳方法解析
2020/08/29 Javascript
[02:19]DOTA选手解说齐贺岁
2018/02/11 DOTA
Python yield 使用浅析
2015/05/28 Python
python微信跳一跳系列之棋子定位颜色识别
2018/02/26 Python
Flask框架Jinjia模板常用语法总结
2018/07/19 Python
解决Python pandas plot输出图形中显示中文乱码问题
2018/12/12 Python
python用requests实现http请求代码实例
2019/10/31 Python
Django模型中字段属性choice使用说明
2020/03/30 Python
浅谈keras中的目标函数和优化函数MSE用法
2020/06/10 Python
Python约瑟夫生者死者小游戏实例讲解
2021/01/04 Python
HTML5实时语音通话聊天MP3压缩传输3KB每秒
2019/08/28 HTML / CSS
医学生个人求职信范文
2014/02/07 职场文书
现场施工员岗位职责
2014/03/10 职场文书
小学模范班主任事迹材料
2014/05/13 职场文书
质量月口号
2014/06/20 职场文书
详解MySQL集群搭建
2021/05/26 MySQL
SQL Server删除表中的重复数据
2022/05/25 SQL Server