简介这是一款面向DEDECMS织梦站点管理员与SEO初学者的蜘蛛爬行记录插件用于模拟百度、谷歌、360等搜索引擎爬虫访问网站帮助排查抓取异常、死链、内链结构及重复URL等影响收录与排名的问题。压缩包共38个文件以27个php核心程序为主辅以2个js脚本、2个css样式、5个gif图标、1个sql数据库脚本和1个txt说明文件整体约36KB体积轻便便于上传部署与后台启用。插件除模拟爬取外还可记录爬虫访问轨迹分析404错误与加载较慢页面检查站内链接权重传递识别URL规范化问题并给出减少HTTP请求、压缩CSS与JavaScript、优化图片等HTML代码建议。已有376人学习适合需要从抓取日志入手优化站点结构、提升搜索引擎友好度与收录效果的站长参考。1. 蜘蛛爬行插件装上去之前先搞清楚它到底在管哪一段链路站点每天更新十几篇后台的蜘蛛访问记录却像心电图停跳这类问题十有八九不是内容问题而是你根本看不见蜘蛛来了没有。dede 蜘蛛爬行插件干的是一件很朴素的事把搜索引擎蜘蛛的每一次抓取——UA、IP、URL、状态码、耗时——记下来再根据这些记录反向喂 URL 出去。它不生成内容也不改模板管的是“抓取”这一段链路。适合还在用 dede 跑内容站、手里有服务器权限、能改几行 PHP 的人只想装个插件点两下就完事的这套东西会让你失望。2. 环境对齐与安装把插件挂进 dede 的请求链路dede 这类老框架最麻烦的地方不是功能写不出来而是“代码该塞哪儿”没有标准答案。插件包拿到手先别急着扔进/plus/那是给独立入口脚本用的目录不是万能的。下面按落位、建表、挂载三步走每一步都给出可回滚的做法。2.1 目录落位四个文件三种命运一个能用的蜘蛛插件拆开基本是这几块文件建议落位生命周期作用spider_core.php/include/spider/随框架加载UA 识别、IP 校验、写库函数spider_log.php/plus/独立请求前端异步上报入口可选spider_admin.php后台目录默认/dede/后台访问统计报表页spider_push.php/plus/命令行/定时推送队列消费者install.sql手动执行一次性建表核心文件spider_core.php必须放在/include/下面原因很实际dede 的DEDEINC常量指向的就是/include/你在任何地方require_once DEDEINC./spider/spider_core.php;都能命中而放在/plus/里就得靠相对路径dirname(__FILE__)去猜一旦后台目录被改过名很多人出于安全考虑会把/dede/换成别的相对路径立刻翻车。后台那个统计页要注意一点dede 后台目录名是可以配置的/dede/只是默认值。插件包里如果写死了/dede/spider_admin.php这种链接改名之后页面能打开但里面的 AJAX 全 404。稳妥做法是在统计页顶部用 dede 自带的常量拼路径而不是硬编码字符串。2.2 建表两张表一张记流水一张管推送不要试图用一张表把“抓取记录”和“待推送 URL”混在一起这两件事的读写特征完全相反抓取记录是高频写、低频读推送队列是低频写、批量读。分开建后面清理数据也好清。-- 抓取记录表按天 URL 蜘蛛 做唯一键一天一个 URL 只留一行 CREATE TABLE IF NOT EXISTS #__spider_log ( id bigint unsigned NOT NULL AUTO_INCREMENT, spider varchar(20) NOT NULL DEFAULT COMMENT 蜘蛛家族标识, url varchar(255) NOT NULL DEFAULT COMMENT 抓取路径不含域名, url_md5 char(32) NOT NULL DEFAULT COMMENT url 的 md5用于唯一键, ip varchar(46) NOT NULL DEFAULT COMMENT IPv4/IPv6, status smallint NOT NULL DEFAULT 0 COMMENT HTTP 状态码, cost_ms int NOT NULL DEFAULT 0 COMMENT 服务端处理耗时(ms), hits int NOT NULL DEFAULT 1 COMMENT 当天抓取次数, visit_day date NOT NULL COMMENT 抓取日期, last_time int NOT NULL DEFAULT 0 COMMENT 最后一次抓取时间戳, PRIMARY KEY (id), UNIQUE KEY uk_day_url_spider (visit_day,url_md5,spider), KEY idx_spider_day (spider,visit_day) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4; -- 推送队列表只存待推和推失败的成功的定期归档 CREATE TABLE IF NOT EXISTS #__spider_push ( id bigint unsigned NOT NULL AUTO_INCREMENT, url varchar(255) NOT NULL DEFAULT , status tinyint NOT NULL DEFAULT 0 COMMENT 0待推 1成功 2失败, retry tinyint NOT NULL DEFAULT 0 COMMENT 重试次数, addtime int NOT NULL DEFAULT 0, lasttime int NOT NULL DEFAULT 0, PRIMARY KEY (id), UNIQUE KEY uk_url (url), KEY idx_status (status,retry) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;#__是 dede 的表前缀占位符框架在加载include/common.inc.php时用$cfg_dbprefix替换成实际前缀。如果你是在命令行脚本里直接mysql执行这段 SQL得先把#__手动换成你真本文还有配套的精品资源点击获取