当前位置:首页 > 编程技术 > php技术 > 正文内容

网站中记录爬虫最简单直观的方法

鱼湘肉丝1年前 (2022-12-18)php技术712

每次做网站的时候都会想着如何记录爬虫,可网上现成的轮子并没有提供现成的给你用,不信你可以查查看。

那么没轮子怎么造轮子最快。

一种方法就是搜集现成的UA添加进数据库里,然后再调用,这种方法应当是第一个能想到的法子,那么他实际上并不实用。

因为爬虫的UA 和 IP 并不完全固定 或许又改了呢? 

所以我想的一个法子就是 

  1. 记录用户的信息

  2. CREATE TABLE `hkcms_arecords` (
      `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
      `create_time` int(11) DEFAULT NULL COMMENT '创建时间',
      `update_time` int(11) DEFAULT NULL COMMENT '修改时间',
      `ip` varchar(255) DEFAULT NULL COMMENT 'ip',
      `ua` varchar(255) DEFAULT NULL COMMENT '浏览器UA',
      `iptype` varchar(255) DEFAULT NULL COMMENT 'ip类型',
      `access_address` varchar(255) DEFAULT NULL COMMENT '访问地址',
      `equipment_type` varchar(255) DEFAULT NULL COMMENT '设备类型',
      PRIMARY KEY (`id`) USING BTREE
    ) ENGINE=MyISAM AUTO_INCREMENT=6268 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC
  3. 新增爬虫记录表 

  4. CREATE TABLE `hkcms_crawlerlog` (
      `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
      `ip` varchar(255) DEFAULT NULL COMMENT 'ip',
      `img` varchar(255) DEFAULT NULL COMMENT '爬虫图片',
      `ua` text COMMENT '爬虫UA',
      `status` enum('normal','hidden','reject','audit') DEFAULT 'normal',
      `crawler` varchar(255) DEFAULT NULL COMMENT '爬虫名称',
      `type` varchar(255) DEFAULT NULL COMMENT '记录类型',
      `create_time` int(11) DEFAULT NULL COMMENT '创建时间',
      `update_time` int(11) DEFAULT NULL COMMENT '修改时间',
      PRIMARY KEY (`id`) USING BTREE
    ) ENGINE=MyISAM AUTO_INCREMENT=6248 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;




 当我们查看用户访问记录的时候 观察UA 毕竟知名的爬虫就那么几个 

 看到UA熟悉的 直接百度查一下 UA 具体属于哪只爬虫  我们添加进爬虫记录表即可 

 那么添加完后如何展示呢 ?

其中$data  为 用户访问记录

$crawlerArr = Crawlerlog::select();
foreach ($data as $k=>$v){
    foreach ($crawlerArr as $c){
        if($v[$c['type']] == $c[$c['type']]){
            $data[$k]['name'] = $c['crawler']; // 例如百度爬虫
            $data[$k]['imgs'] = $c['img'];
        }
    }
    if(!isset($data[$k]['name'])){
        $data[$k]['name'] = '普通用户';
        $data[$k]['imgs'] =  '/static/creimg/img/user.png';
    }
}


本文链接:https://yun.ha.cn/post/53.html 转载需授权!

分享到:

扫描二维码推送至手机访问。

版权声明:本文由云蛤社区发布,如需转载请注明出处。

技术交流QQ群:657091037

部分文章和资源从互联网中收集,如有侵权 联系站长删除。

本文链接:https://yun.ha.cn/post/53.html

分享给朋友:

“网站中记录爬虫最简单直观的方法” 的相关文章

php自动计算并转换流量单位(b kb mb gb tb转换)的方法

php自动计算并转换流量单位(b kb mb gb tb转换)的方法

   我们都知道系统的流量统计都是以字节单位进行存储,如果我们在做流量统计相关功能时,不可能直接将字节显示给用户,如果直接显示比特将会是很长一段数字,例如:1KB = 1024b1MB = 1048576b1GB = 1073741824b  由此可...

php时间日期计算方法

php时间日期计算方法

  php自带的函数strtotime(),可以用来快速计算一天后、一周后、一个月后、一年后的时间。可以用于计算会员到期日,产品到期时间等等。具体用法$today = date('Y-m-d'); //今天的日期 $wutian =...

php通过时间戳自动计算 1分钟前,N小时前,N年前的例子

php通过时间戳自动计算 1分钟前,N小时前,N年前的例子

  最近刚好有一个php项目需求,需要用显示帖子的发布时间,时间显示格式要求是这种的:N分钟前,N小时前,N个月前,N年前;其实实现方法有很多种,我这里就用了最简单傻瓜式的方式来写。直接判断秒数来输出对应的时间,具体如下:1分钟 = 60秒1小时 = 3600秒一天(24小时) =&nbs...

对ThinkPHP模型查询出的结果数据集进行排序的方法

对ThinkPHP模型查询出的结果数据集进行排序的方法

   相信很多小伙伴也在用ThinkPHP进行项目开发,ThinkPHP的模型功能可以很方便的对数据库进行增删改查的操作,ThinkPHP的模型也自带了order()方法进行原生MySql排序查询。但是可能会有一些业务逻辑需要将查询的数据集进行二次处理以及排序等操作,今天给大家分...

PHP实现腾讯云cos对象储存盲水印添加获取文档

PHP实现腾讯云cos对象储存盲水印添加获取文档

    盲水印功能基于腾讯云数据万象,是一种全新的水印模式。通过该功能,您可将水印图以不可见的形式添加到原图信息中,并且不会对原图质量产生太大影响。当发现图片被盗取后,您可对疑似被盗取的资源进行盲水印提取,验证图片归属。 通过该 A...

php Swoole Compiler 扩展全版本大全

php Swoole Compiler 扩展全版本大全

Swoole Compiler 简介Swoole Compiler 是识沃科技推出的 PHP 代码加密和客户端授权解决方案,通过业内先进的代码加密技术,包括流程混淆、花指令、变量混淆、函数名混淆、虚拟机保护技术、扁平化代码、SCCP 优化等,将 PHP 程序源代码编译为二进制指令,来保护您的源代码。...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。