Crawler para crear lanzar activar el cache de tu página web

#!/bin/bash

# Uso: crawler.sh --url <url-del-sitemap> --threads <número-de-hilos>

USER_AGENT="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"

# Función para procesar cada URL y mostrar el código de estado HTTP
process_url() {
    local url=$1
    local http_status=$(curl -o /dev/null -s -w "%{http_code}\n" -A "$USER_AGENT" "$url")
    echo "URL: $url - Código HTTP: $http_status"
}

# Función para procesar el sitemap
process_sitemap() {
    local sitemap_url=$1
    local threads=$2
    local temp_file=$(mktemp)

    # Descargar el sitemap
    curl -s -A "$USER_AGENT" "$sitemap_url" -o "$temp_file"

    # Extraer URLs
    grep -oP '<loc>(.*?)</loc>' "$temp_file" | sed -e 's/<\/*loc>//g' | xargs -n 1 -P "$threads" -I {} bash -c "
        process_url() {
            local url=\$1
            local http_status=\$(curl -o /dev/null -s -w \"%{http_code}\n\" -A \"$USER_AGENT\" \"\$url\")
            echo \"URL: \$url - Código HTTP: \$http_status\"
        }
        process_url '{}'
    "

    # Limpiar archivo temporal
    rm "$temp_file"
}

# Parsear argumentos
while [[ "$#" -gt 0 ]]; do
    case $1 in
        --url) sitemap_url="$2"; shift ;;
        --threads) threads="$2"; shift ;;
        *) echo "Opción desconocida: $1" ;;
    esac
    shift
done

# Verificar si se han dado los argumentos necesarios
if [[ -z "$sitemap_url" || -z "$threads" ]]; then
    echo "Faltan argumentos. Uso: crawler.sh --url <url> --threads <número>"
    exit 1
fi

# Llamar a la función principal
process_sitemap "$sitemap_url" "$threads"

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *