Dile a wget que no araña la URL que coincide con un patrón?

Quiero probar cómo se comportaría mi sitio al ser spidenetworking. Sin embargo, quiero excluir todas las URL que contengan la palabra "página". Lo intenté:

$ wget -r -R "*page*" --spider --no-check-certificate -w 1 http://mysite.com/ 

Se supone que el -R rechaza el patrón de URL que contiene la palabra "página". Excepto que no parece funcionar:

 Spider mode enabled. Check if remote file exists. --2014-06-10 12:34:56-- http://mysite.com/?sort=post&page=87729 Reusing existing connection to [mysite.com]:80. HTTP request sent, awaiting response... 200 OK 

¿Cómo excluyo el spidering de tal URL?

Después de un poco de testing y error, me doy count de que la solución es simplemente usar --reject-regex esta manera:

 wget -r --reject-regex page --spider --no-check-certificate -w 1 http://mysite.com/ 

El urlregex no debe contener un comodín y, por lo tanto, *page* no es válida, pero la page es.

Del man wget :

 -R rejlist --reject rejlist Specify comma-separated lists of file name suffixes or patterns to accept or reject. 

Esta opción solo rechazará los files que coincidan con el patrón.

Estrictamente hablando, en su page URL hay un parámetro de request, no la última parte de la ruta (por ejemplo, nombre de file).


Es posible que desee volcar todas las URL que encuentre (por ejemplo, grep el logging de todas las URL descargadas), eliminar las URL que no le satisfacen (con grep -v, por ejemplo) y finalmente hacer que wget recupere las URL que quedan. Por ejemplo:

 # dump the whole website wget ... -P dump -o wget.log ... # extract URLs from the log file cat wget.log | grep http | tr -s " " "\012" | grep http >urls # excludes URLs with the word page anywhere in it cat urls | grep -v page >urls # delete previous dump, since it probably contains unwanted files rm -rf dump # Fetch URLs cat urls | xargs wget -x 

Es posible que desee agregar otras opciones de wget (por ejemplo, –no-check-certificate) según sus necesidades.