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
PHPWind 发帖回帖Api PHP版打包下载
Feb 08 PHP
php curl的深入解析
Jun 02 PHP
php 常用算法和时间复杂度
Jul 01 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
Jan 03 PHP
thinkphp普通查询与表达式查询实例分析
Nov 24 PHP
php第一次无法获取cookie问题处理
Dec 15 PHP
php读取文件内容到数组的方法
Mar 16 PHP
php生成图片验证码的实例讲解
Aug 03 PHP
Laravel框架实现发送短信验证功能代码
Jun 06 PHP
PHP实现的折半查询算法示例
Oct 09 PHP
PHP中通过getopt解析GNU C风格命令行选项
Nov 18 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
Uchome1.2 1.5 代码学习 common.php
2009/04/24 PHP
浅谈PHP解析URL函数parse_url和parse_str
2014/11/11 PHP
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
浅谈php+phpStorm+xdebug配置方法
2015/09/17 PHP
PHP接收App端发送文件流的方法
2016/09/23 PHP
php 命名空间(namespace)原理与用法实例小结
2019/11/13 PHP
jquery实现excel导出的方法
2013/04/04 Javascript
你的 mixin 真的兼容 ECMAScript 5 吗?
2013/04/11 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
2015/02/20 Javascript
jquery实现标题字体变换的滑动门菜单效果
2015/09/07 Javascript
轻松理解JavaScript闭包
2017/03/14 Javascript
引入JavaScript时alert弹出框显示中文乱码问题
2017/09/16 Javascript
详解vue中router-link标签所必备了解的属性
2019/04/15 Javascript
kafka调试中遇到Connection to node -1 could not be established. Broker may not be available.
2019/09/17 Javascript
javascript实现支付宝滑块验证码效果
2020/07/24 Javascript
在Uni中使用Vue的EventBus总线机制操作
2020/07/31 Javascript
为Python程序添加图形化界面的教程
2015/04/29 Python
在Python中用keys()方法返回字典键的教程
2015/05/21 Python
Python中的多行注释文档编写风格汇总
2016/06/16 Python
Python的Tornado框架实现异步非阻塞访问数据库的示例
2016/06/30 Python
python anaconda 安装 环境变量 升级 以及特殊库安装的方法
2017/06/21 Python
python自动发送邮件脚本
2018/06/20 Python
详解如何设置Python环境变量?
2019/05/13 Python
python递归法解决棋盘分割问题
2019/07/17 Python
Python实现中值滤波去噪方式
2019/12/18 Python
Python实现AI自动抠图实例解析
2020/03/05 Python
解决Jupyter NoteBook输出的图表太小看不清问题
2020/04/16 Python
python 逆向爬虫正确调用 JAR 加密逻辑
2021/01/12 Python
html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法
2013/01/09 HTML / CSS
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
乌克兰设计师和品牌的服装:Love&Live
2020/04/14 全球购物
竞选演讲稿范文大全
2014/05/12 职场文书
业务员岗位职责
2015/02/03 职场文书
母亲节感言
2015/08/03 职场文书
2019年让高校“心动”的自荐信
2019/03/25 职场文书
一文搞懂Java中的注解和反射
2022/06/21 Java/Android