Código de Linux/Unix Shell Scripting - Script para descargar las urls de un página web

Imágen de perfil

Script para descargar las urls de un página webgráfica de visualizaciones


Linux/Unix Shell Scripting

Publicado el 31 de Julio del 2014 por Xavi
1.334 visualizaciones desde el 31 de Julio del 2014. Una media de 14 por semana
Script de bash que dada una página web, devuelve todas las urls de dicha página.

Versión 1

Publicado el 31 de Julio del 2014gráfica de visualizaciones de la versión: Versión 1
1.335 visualizaciones desde el 31 de Julio del 2014. Una media de 14 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/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 href=" o href='
	#	grep -i "href=['|\"]"
	# Eliminamos todo el contenido que haya antes de href=" o href='
	#	sed "s/^.*href=['|\"]//"
	# 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 "href=['|\"]" | sed "s/^.*href=['|\"]//" | 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 (0)


No hay comentarios
 

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s2729