xcrawl3r:一款功能强大的网站页面递归爬取CLI工具
字数 1321 2025-08-10 12:17:54
xcrawl3r 网站递归爬取工具使用指南
工具概述
xcrawl3r 是一款功能强大的基于命令行接口(CLI)的网站页面递归爬取工具,能够系统地浏览网页URL并通过跟踪链接来发现网站页面URL地址。
主要功能
- 递归爬取:自动跟踪并爬取目标Web页面中的URL地址
- 多格式支持:支持从.js、.json、.xml、.csv、.txt和.map文件解析URL地址
- 站点分析:
- 分析robots.txt中的URL地址
- 分析sitemap中的URL地址
- 页面渲染:支持渲染页面,包括单页应用程序(如Angular和React)
- 跨平台:支持Windows、Linux和macOS系统
安装方法
发布版本安装
- 从Releases页面下载对应版本
- 或使用wget/curl命令:
wget https://github.com/hueristiq/xcrawl3r/releases/download/v<version>/xcrawl3r-<version>-linux-amd64.tar.gz # 或 curl -OL https://github.com/hueristiq/xcrawl3r/releases/download/v<version>/xcrawl3r-<version>-linux-amd64.tar.gz - 解压文件:
tar xf xcrawl3r-<version>-linux-amd64.tar.gz
源码安装
- 确保已安装Go语言环境
- 使用go install安装:
go install -v github.com/hueristiq/xcrawl3r/cmd/xcrawl3r@latest - 或手动克隆并构建:
git clone https://github.com/hueristiq/xcrawl3r.git cd xcrawl3r/cmd/xcrawl3r && go build . sudo mv xcrawl3r /usr/local/bin/
使用说明
基本命令
查看帮助信息:
xcrawl3r -h
主要参数
输入选项
-d, --domain string:域名匹配的URL地址--include-subdomains bool:包含子域名匹配的URL地址-s, --seeds string:URL种子文件-u, --url string:待爬取的URL地址
配置选项
--depth int:最大爬取深度(默认为3,0为无限爬取)--headless bool:在爬取过程中显示浏览器内容-H, --headers string[]:自定义请求Header(可多次使用)--proxy string[]:代理URL(可多次使用)--render bool:使用无头Chrome实例渲染页面--timeout int:请求等待时间(默认为10秒)--user-agent string:自定义User-Agent(默认为"Web")
速率限制
-c, --concurrency int:并行爬取器数量(默认为10)--delay int:每次请求的延迟时间(秒)--max-random-delay int:额外随机延迟时间最大值(默认为1秒)-p, --parallelism int:并行处理的URL数量(默认为10)
输出选项
--debug bool:启用调试模式-m, --monochrome bool:禁用颜色高亮输出-o, --output string:将发现的URL写入文件-v, --verbosity string:开启Verbose模式
使用示例
-
基本爬取:
xcrawl3r -u https://example.com -
设置爬取深度:
xcrawl3r -u https://example.com --depth 5 -
使用代理:
xcrawl3r -u https://example.com --proxy http://127.0.0.1:8080 -
保存结果到文件:
xcrawl3r -u https://example.com -o results.txt -
渲染JavaScript页面:
xcrawl3r -u https://example.com --render
许可证
xcrawl3r 采用 MIT 开源许可证协议。
项目地址
GitHub仓库: https://github.com/hueristiq/xcrawl3r
注意事项
- 使用前请确保遵守目标网站的robots.txt规则
- 合理设置爬取深度和延迟,避免对目标网站造成过大负担
- 对于JavaScript密集型网站,建议启用
--render选项 - 大规模爬取时建议使用代理和随机延迟