核心用法
link-checker 是一款基于 Python3 urllib 的轻量级链接检测工具,无需外部依赖即可运行。其核心功能围绕 URL 健康检测展开,提供单页检查、递归爬取、批量处理三种工作模式,并支持 text/json/csv/html 四种输出格式。
基础检测:check <url> 快速扫描页面全部超链接,返回状态码、响应耗时及链接位置;broken <url> 与 redirects <url> 提供结果过滤,专注失效链接或重定向链路。
递归爬取:crawl <url> 支持 --depth 参数控制爬取深度,结合 --internal-only / --external-only 实现域内/外链分流检测,适用于中大型站点的全站体检。
报告生成:report <url> 输出结构化 HTML 报告,summary <url> 提供统计概览(正常/断链/重定向/超时数量),便于向团队或客户汇报。
批量处理:batch <file> 支持从文本文件读取多个 URL 队列,配合 --concurrent <n> 并发控制(默认 5 线程),提升检测效率。
显著优点
- 零依赖部署:纯 Python3 urllib 实现,无需安装 requests/httpx 等第三方库,兼容性强,适合受限环境。
- 多维度检测:覆盖 HTTP 200/204 正常响应、301/302 重定向、404/410 死链、403/500/502/503 服务器错误、超时及 DNS 失败全场景。
- 灵活过滤机制:通过
--exclude <pattern>排除特定 URL,结合--quiet/--verbose调节输出粒度。 - 自定义请求头:
--user-agent支持模拟浏览器或爬虫标识,规避简单的反爬策略。
潜在缺点与局限性
- 功能边界:仅检测 HTTP 状态码,无法验证页面内容语义(如软 404)或 JavaScript 动态渲染后的链接。
- 并发限制:默认 5 并发,大规模站点检测速度受限;未提及速率限制与礼貌爬取(crawl-delay)机制,存在被封禁风险。
- 认证缺失:不支持 HTTP Basic/Digest 认证、Cookie 会话或自定义 TLS 配置,无法检测受保护区域的链接。
- 报告深度:HTML 报告样式与交互性未说明,缺乏历史趋势对比或基线告警功能。
适合人群
网站管理员、SEO 工程师、质量保证(QA)团队、技术文档维护者,以及需要定期检查外链健康的博客运营者。
常规风险
- 服务器负载:高频并发请求可能触发目标站点的 WAF 或速率限制,导致 IP 临时封禁。
- 误报可能:某些站点对 HEAD 请求返回 405,工具若未自动降级为 GET 可能误判为异常。
- 隐私合规:递归爬取时可能意外收集到含敏感参数的 URL(如
?token=),需注意输出报告的存储与分享安全。 - 依赖单一:Python urllib 的 SSL/TLS 行为与系统 OpenSSL 版本强相关,老旧系统可能出现证书验证异常。