Crawl website to discover pages and forms.
(
target: str = typer.Argument(..., help="Target URL"),
max_pages: int = typer.Option(100, "--max-pages", "-m"),
verbose: bool = typer.Option(False, "--verbose", "-v"),
)
| 389 | console.print() |
| 390 | |
| 391 | |
| 392 | # ============== Web Scanner Commands ============== |
| 393 | |
| 394 | @scan_app.command("crawl") |
| 395 | def scan_crawl( |
| 396 | target: str = typer.Argument(..., help="Target URL"), |
| 397 | max_pages: int = typer.Option(100, "--max-pages", "-m"), |
| 398 | verbose: bool = typer.Option(False, "--verbose", "-v"), |
| 399 | ): |
| 400 | """Crawl website to discover pages and forms.""" |
| 401 | setup_logging(debug=verbose) |
| 402 | from modules.webscanner import WebCrawler |
| 403 | |
| 404 | console.print(f"[bold]Web Crawl:[/bold] {target}") |
| 405 | scanner = WebCrawler(max_pages=max_pages) |
| 406 | result = run_async(scanner.run(Target.from_string(target))) |
nothing calls this directly
no test coverage detected