Posso calcular o tamanho total de um site disponível para público?

1

Digamos que eu queira baixar todas as páginas públicas ou criar um banco de dados off-line no site www.psychocats.net. Agora, como posso calcular primeiro o tamanho total do website antes de iniciar o download?

    
por 22lk94k943 only 23.06.2013 / 20:32

1 resposta

2

Com base em Perguntas e respostas semelhantes - obter o tamanho do arquivo de um arquivo para wget antes de wget-lo? - Eu fiz script bash shell wrapper que vai fazer exatamente o que você precisa. :)

O último repositório de código pode ser encontrado no Github aqui:

#!/bin/bash
# Info: https://github.com/mariomaric/website-size#readme

# Prepare wget logfile
log=/tmp/wget-website-size-log

# Do the spider magic
echo "### Crawling ${!#} website... ###"
sleep 2s
echo "### This will take some time to finish, please wait. ###"

wget \
  --recursive --level=inf \
  --spider --server-response \
  --no-directories \
  --output-file="$log" "$@"

echo "Finished with crawling!"
sleep 1s

# Check if prepared logfile is used
if [ -f "$log" ]; then
    # Calculate and print estimated website size
    echo "Estimated size: $(\
        grep -e "Content-Length" "$log" | \
        awk '{sum+=} END {printf("%.0f", sum / 1024 / 1024)}'\
    ) Mb"

    # Delete wget log file
    rm "$log"
else
    echo "Unable to calculate estimated size."
fi  

exit

Além disso, essa resposta ajudou tremendamente: Comando shell para somar inteiros, um por linha?

    
por mariomaric 07.10.2013 / 21:35