crawlergo是一个使用`chrome headless`模式进行URL收集的浏览器爬虫。它对整个网页的关键位置与DOM渲染阶段进行HOOK,自动进行表单填充并提交,配合智能的JS事件触发,尽可能的收集网站暴露出的入口。内置URL去重模块,过滤掉了大量伪静态URL,对于大型网站仍保持较快的解析与抓取速度,最后得到高质量的请求结果集合。
crawlergo 目前支持以下特性:
* 原生浏览器环境,协程池调度任务
* 表单智能填充、自动化提交
* 完整DOM事件收集,自动化触发
* 智能URL去重,去掉大部分的重复请求
* 全面分析收集,包括javascript文件内容、页面注释、robots.txt文件和常见路径Fuzz
* 支持Host绑定,自动添加Referer
* 支持请求代理,支持爬虫结果主动推送
## 运行截图

## 安装
**安装使用之前,请仔细阅读并确认[免责声明](./Disclaimer.md)。**
**Build**
- 编译适用于当前机器的文件
```shell
make build
```
- 交叉编译所有平台的文件
```shell
make build_all
```
1. crawlergo 只依赖chrome运行即可,前往[下载](https://www.chromium.org/getting-involved/download-chromium)新版本的chromium。
2. 前往[页面下载](https://github.com/0Kee-Team/crawlergo/releases)最新版本的crawlergo解压到任意目录,如果是linux或者macOS系统,请赋予crawlergo**可执行权限(+x)**。
3. 或者直接根据源码自行编译。
> 如果你使用linux系统,运行时chrome提示缺少一些依赖组件,请看下方 Trouble Shooting
## Quick Start
### Go!
假设你的chromium安装在 `/tmp/chromium/` ,开启最大10标签页,爬取AWVS靶场:
```shell
bin/crawlergo -c /tmp/chromium/chrome -t 10 http://testphp.vulnweb.com/
```
### 使用代理
```shell
bin/crawlergo -c /tmp/chromium/chrome -t 10 --request-proxy sock