核心用法
link-checker 是一款基于 Python3 urllib 的轻量级链接检测工具,无需外部依赖即可部署。核心功能覆盖三类场景:
1. 单页检测:check <url> 快速扫描指定页面全部链接
2. 递归爬取:crawl <url> --depth <n> 支持深度可控的站点级遍历
3. 定向报告:broken/redirects/external/internal 等子命令实现精准过滤,配合 --format text|json|csv|html 满足审计、集成、可视化等多元需求
关键参数包括:--concurrent <n> 控制并发数以平衡效率与目标站点负载;--timeout 与 --user-agent 提供请求行为定制;--exclude <pattern> 支持正则排除特定路径。
显著优点
- 零依赖部署:纯 Python3 标准库实现,降低环境配置成本
- 多维度输出:从命令行快速摘要到完整 HTML 报告,覆盖开发调试与管理层汇报场景
- 状态分类清晰:将结果映射为 ✅ OK / 🔄 Redirect / ❌ Broken / ⚠️ Error / ⏱️ Timeout / 🚫 Failed 六类,降低解读门槛
- 爬取策略可控:深度限制 + 内外链分离 + 并发调节,兼顾效率与"爬虫礼仪"
潜在局限与风险
- 无渲染能力:基于 urllib 的静态抓取无法检测由 JavaScript 动态生成的链接(SPA、懒加载等场景漏检)
- 缺乏身份认证:未提及 Cookie/Token/Basic Auth 支持,需登录态的页面(如后台、会员区)无法检测
- 反爬对抗弱:固定 User-Agent 与请求模式易被 WAF 拦截,大规模检测可能触发 IP 封禁
- 协议覆盖有限:未明确支持 WebSocket、FTP 等非 HTTP/HTTPS 协议
适合人群
- 网站运维工程师:例行健康检查与改版后全站验证
- SEO 从业者:外链质量监控与死链清理以优化权重分配
- 内容编辑团队:发布前页面链接预检
- 合规审计人员:生成可归档的 HTML/CSV 检测报告
常规风险
| 风险类型 | 说明 | 缓解建议 |
|---------|------|---------|
| 目标站点负载 | 高并发递归爬取可能被视为攻击 | 降低 `--concurrent`,延长 `--timeout`,遵守 robots.txt |
| 敏感信息泄露 | 报告文件可能含未公开 URL | 加密存储输出文件,限制访问权限 |
| 法律合规 | 未授权爬取可能违反 CFAA/计算机犯罪相关法规 | 仅检测自有站点或获得书面授权 |
| 误报风险 | 临时 503 或地理限制可能被标记为 Broken | 二次验证或设置重试机制 |