web-dev-qa-db-fra.com

Puis-je calculer la taille totale d'un site Web disponible au public?

Dites que je veux télécharger toutes les pages publiques ou créer une base de données hors ligne du site Web www.psychocats.net. Maintenant, comment puis-je calculer la taille totale du site Web avant de commencer le téléchargement?

2
22lk94k943 only

Basé sur des questions/réponses similaires - obtenir la taille du fichier d'un fichier à wget avant de le wget? - J'ai créé le script bash shell wrapper qui fera exactement ce dont vous avez besoin. :)

Le dernier dépôt de code peut être trouvé sur Github ici:

#!/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+=$2} END {printf("%.0f", sum / 1024 / 1024)}'\
    ) Mb"

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

exit

En outre, cette réponse a énormément aidé: La commande shell récapitule les entiers, un par ligne?

4
mariomaric