Recientemente, he tenido la necesidad de crear un script para escanear todas las URLs que tiene una página WEB, tal y como hacen los robots que hay Internet.
El script es muy sencillo, pero ya me sirve para lo que pretendía. El código fuente es el siguiente:
[root]# cat spider.sh
#!/usr/bin/sh
SPIDER=/tmp/spider.txt
wget --spider --force-html -r https://puerto53.com -o $SPIDER
grep "\-\-" /tmp/spider.txt |awk '{print $3}' |grep "^https://puerto53" |sed 's/?share=facebook//g' |sed 's/?share=twitter//g' |sed 's/?share=linkedin//g' |sed 's/?share=google-plus-1//g' |sed 's/\/feed\///g' |grep "/$" |grep -v "/page/" |grep -v "/random/" |sort |uniq > /tmp/URLs.txt
[root]#
Una vez ejecutado el script, tenemos las URLs escaneadas en el fichero /tmp/URLs.txt:
[root]# head /tmp/URLs.txt
puerto53.com
puerto53.com/amazon-aws/actualizar-una-maquina-virtual-linux-centos-de-amazon-aws/
puerto53.com/amazon-aws/administracion-y-creacion-de-un-vpc-de-amazon-aws/
puerto53.com/amazon-aws/amazon-efs-elastic-filesystem/
puerto53.com/amazon-aws/amazon-s3-simple-storage/
puerto53.com/amazon-aws/asignacion-de-roles-a-instancias-ec2-de-amazon-aws/
puerto53.com/amazon-aws/aumentar-la-velocidad-de-inputoutput-con-un-raid-amazon-aws/
puerto53.com/amazon-aws/aws-cli-crear-un-snapshot-de-un-volumen-por-linea-de-comandos/
puerto53.com/amazon-aws/aws-cli-linea-de-comandos-de-amazon-aws/
puerto53.com/amazon-aws/cloudfront-redes-de-distribucion-de-contenido-cdn-amazon-aws/
[root]#
Descarga ficheros de Google Drive con wget
Descargar todos los ficheros de una URL con wget
Imaginemos que nos queremos decargar todos los ficheros RPM de una URL con wget. Lo haríamos de la siguiente manera:
[[email protected] vmware-tools-10.3.23]$ wget https://packages.vmware.com/tools/releases/10.3.23/rhel6/x86_64/
...
[[email protected] x86_64]$ pwd
/home/david/Downloads/vmware-tools-10.3.23/packages.vmware.com/tools/releases/10.3.23/rhel6/x86_64
[[email protected] x86_64]$ ll
total 20000
-rw-rw-r-- 1 david david 156040 Sep 24 11:18 kmod-vmware-tools-vmci-9.8.2.0-2.6.32.71.el6.x86_64.11.el6.x86_64.rpm
-rw-rw-r-- 1 david david 157837 Sep 24 11:18 kmod-vmware-tools-vmci-retpoline-9.8.2.0-2.6.32.754.9.1.el6.x86_64.11.el6.x86_64.rpm
-rw-rw-r-- 1 david david 104692 Sep 24 11:18 kmod-vmware-tools-vmhgfs-2.0.21.0-2.6.32.71.el6.x86_64.11.el6.x86_64.rpm
-rw-rw-r-- 1 david david 104193 Sep 24 11:18 kmod-vmware-tools-vmhgfs-retpoline-2.0.21.0-2.6.32.754.9.1.el6.x86_64.11.el6.x86_64.rpm
-rw-rw-r-- 1 david david 45496 Sep 24 11:18 kmod-vmware-tools-vmxnet-2.1.0.0-2.6.32.71.el6.x86_64.11.el6.x86_64.rpm
-rw-rw-r-- 1 david david 48897 Sep 24 11:18 kmod-vmware-tools-vmxnet-retpoline-2.1.0.0-2.6.32.754.9.1.el6.x86_64.11.el6.x86_64.rpm
-rw-rw-r-- 1 david david 98712 Sep 24 11:18 kmod-vmware-tools-vsock-9.8.1.0-2.6.32.71.el6.x86_64.11.el6.x86_64.rpm
-rw-rw-r-- 1 david david 87941 Sep 24 11:18 kmod-vmware-tools-vsock-retpoline-9.8.1.0-2.6.32.754.9.1.el6.x86_64.11.el6.x86_64.rpm
drwxrwxr-x 2 david david 6 Oct 5 08:07 repodata
-rw-rw-r-- 1 david david 4262541 Sep 24 11:18 vmware-tools-core-10.3.23-1.el6.x86_64.rpm
-rw-rw-r-- 1 david david 3202 Sep 24 11:18 vmware-tools-esx-10.3.23-1.el6.x86_64.rpm
-rw-rw-r-- 1 david david 2930 Sep 24 11:18 vmware-tools-esx-kmods-10.3.23-1.el6.x86_64.rpm
También podemos elegir qué tipo de ficheros queremos descargar. Por ejemplo:
wget -A rpm,html -m -p -E -k -K -np https://packages.vmware.com/tools/releases/10.3.24/rhel6/x86_64/