Katana 是由 projectdiscovery 开发的一款先进的网页爬虫框架,它专为自动化和灵活配置而设计,能够适应各种复杂的网络爬取任务。这款工具结合了标准和无头浏览器模式,支持 JavaScript 解析和爬取,以及自动表单填写,为用户提供了强大的网页抓取能力。Katana 的功能不仅限于基本的爬取,还包括了作用域控制、自定义输出、速率限制和多种过滤选项,使其成为一个多功能的网络爬虫解决方案。
功能特点
它是一款多功能的下一代网络爬虫框架,具备快速、灵活且用户可配置的特性,支持标准和无头浏览器模式进行网页爬取,能够执行JavaScript解析,自动填写表单,并通过预设或自定义的作用域、输出格式、过滤规则和速率限制来精确控制爬取过程,同时提供丰富的命令行选项和作为库集成的能力,满足专业用户在不同场景下的自动化爬取需求。
开源成就
目前已经取得了9.9K Star
主要功能
通过
-field-scope
选项定义爬取的作用域,如根域名或特定子域。
使用
-crawl-scope
和
-crawl-out-scope
通过正则表达式进行高级的作用域控制。
利用
-headers
选项进行认证爬取,模拟登录和访问受保护的资源。
通过
-match-regex
和
-filter-regex
选项使用正则表达式过滤输出的 URL。
支持 DSL 表达式进行高级的匹配和过滤。
简单部署
确保系统上安装了 Go 1.18。
使用以下命令安装 Katana:
go install github.com/projectdiscovery/katana/cmd/katana@latest
或者通过 Docker 部署:
docker pull projectdiscovery/katana:latest
docker run projectdiscovery/katana:latest -u https://tesla.com
在 Ubuntu 系统上,安装必要的依赖后,使用 Go 命令安装 Katana。
使用方法
运行 Katana 并查看帮助文档以了解所有支持的选项:
katana -h
通过命令行界面指定各种选项,如爬取深度、JavaScript 文件解析、速率限制等,执行爬取任务:
katana -u https://example.com -d 2 -jc -rl 100
使用
-o
选项将结果输出到文件,或使用
-json
选项输出 JSON 格式的结果。
katana -u https://example.com -jsonl | jq .
Katana 的灵活性和强大功能使其成为网络安全专家和开发人员进行网站数据抓取和自动化测试的理想选择。
近期热文: