#!/bin/bash
#
# Script de bash para descargar todos los enlaces de una pagina web
#
# bash script http://www.lawebdelprogramador.com
#
# Desarrollado por La Web del Programador
#
# si recibimos algun parametro
if [ $@ > 0 ]
then
# descargamos la pagina
# wget -O - $1 -q
# obtenemos todas las urls que tenga src=" o src='
# grep -i "src=['|\"]"
# Eliminamos todo el contenido que haya antes de src=" o src='
# sed "s/^.*src=['|\"]//"
# Buscamos la cadena " o ' y cogemos el primer valor (tiene que ser la url)
# awk -F"[\"|']" '{print $1}'
# Eliminamos los duplicados
# sort -u
list=`wget -O - $1 -q | grep -i "src=['|\"]" | sed "s/^.*src=['|\"]//" | awk -F"[\"|']" '{print $1}' | sort -u`
# definimos una nueva variable que contendra las urls correctamente
newlist=""
# recorremos todas las urls obtenidas de la pagina web
for url in $list
do
# si la url tiene 4 caracteres o mas y empieza por http entendemos que
# la url es entera... (http://.....)
if [ ${#url} -ge 4 -a ${url:0:4} = "http" ];then
newlist="$newlist\n$url"
# si la url tiene una longitud mayor a 0 y empieza por /
# le añadimos el dominio delante... (/pagina)
elif [ -n $url -a ${url:0:1} = "/" ];then
newlist="$newlist\n$1$url"
# Si no empieza por http ni por una barra, entendemos que es un nombre
# de un arhivo... (pagina.html)
else
newlist="$newlist\n$1"/"$url"
fi
done
# mostramos la nueva lista eliminando los duplicados y ordenados
echo -e $newlist | sort -u | sort
else
echo "Utiliza : $0 http://www.lawebdelprogramador.com"
fi
Comentarios sobre la versión: Versión 1 (1)