Skip to content

Repository files navigation

Crawler

English

Project Summary

Crawler is a command-line web crawler written in Go. It starts from a base URL, crawls pages within the same domain, extracts links and content, collects page-level data, and generates a JSON report.

Technologies Used

  • Go 1.26
  • net/http and Go standard library packages
  • goquery for HTML parsing
  • JSON output generation for crawl results

Project Structure

  • main.go: CLI entry point, argument parsing, crawl start, and report generation.
  • config.go: crawler configuration and shared state management.
  • crawl_page.go: main crawl workflow for each page.
  • normalize_url.go: URL normalization logic.
  • get_html.go: fetches raw HTML from pages.
  • get_urls_from_html .go: extracts links from HTML.
  • get_images_from_html.go: extracts image URLs from HTML.
  • get_content.go: extracts textual content from pages.
  • get_data.go: combines extracted data into page-level structures.
  • json_report.go: writes crawl output to report.json.
  • *_test.go: unit tests for parsing, normalization, and data extraction helpers.
  • go.mod / go.sum: module and dependency definitions.

Español

Resumen del proyecto

Crawler es un rastreador web de línea de comandos escrito en Go. Parte de una URL base, recorre páginas dentro del mismo dominio, extrae enlaces y contenido, recopila datos por página y genera un reporte en formato JSON.

Tecnologías usadas

  • Go 1.26
  • net/http y paquetes de la librería estándar de Go
  • goquery para parseo de HTML
  • Generación de salida JSON con los resultados del rastreo

Estructura del proyecto

  • main.go: punto de entrada CLI, lectura de argumentos, inicio del rastreo y generación del reporte.
  • config.go: configuración del crawler y manejo del estado compartido.
  • crawl_page.go: flujo principal de rastreo por página.
  • normalize_url.go: lógica de normalización de URLs.
  • get_html.go: obtención del HTML crudo de las páginas.
  • get_urls_from_html .go: extracción de enlaces desde HTML.
  • get_images_from_html.go: extracción de URLs de imágenes.
  • get_content.go: extracción de contenido textual de las páginas.
  • get_data.go: composición de datos extraídos en estructuras por página.
  • json_report.go: escritura de la salida en report.json.
  • *_test.go: pruebas unitarias para parsing, normalización y extracción de datos.
  • go.mod / go.sum: definición del módulo y dependencias.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages