Cómo descargar con wget sin seguir enlaces con parámetros


11

Estoy tratando de descargar dos sitios para incluirlos en un CD:

http://boinc.berkeley.edu/trac/wiki
http://www.boinc-wiki.info

El problema que tengo es que ambos son wikis. Entonces, al descargar con, por ejemplo:

wget -r -k -np -nv -R jpg,jpeg,gif,png,tif http://www.boinc-wiki.info/

Obtengo muchos archivos porque también sigue enlaces como ...? Action = edit ...? Action = diff & version = ...

¿Alguien sabe una forma de evitar esto?

Solo quiero las páginas actuales, sin imágenes, sin diferencias, etc.

PD:

wget -r -k -np -nv -l 1 -R jpg,jpeg,png,gif,tif,pdf,ppt http://boinc.berkeley.edu/trac/wiki/TitleIndex

Esto funcionó para Berkeley pero boinc-wiki.info todavía me está dando problemas: /

PPS:

Obtuve las que parecen ser las páginas más relevantes con:

wget -r -k -nv  -l 2 -R jpg,jpeg,png,gif,tif,pdf,ppt http://www.boinc-wiki.info

No es necesario cruzar la publicación entre el superusuario y el servidor default serverfault.com/questions/156045/…
Bryan

¿Dónde debería haberlo publicado?
Tie-fighter

Este es el lugar correcto. No es una pregunta del servidor.
David Z

Aún así obtuve las mejores respuestas en serverfault;)
Tie-fighter

Respuestas:


5

La nueva versión de wget (v.1.14) resuelve todos estos problemas.

Debe usar la nueva opción --reject-regex=....para manejar cadenas de consulta.

Tenga en cuenta que no pude encontrar el nuevo manual que incluye estas nuevas opciones, por lo que debe usar el comando de ayuda wget --help > help.txt


4
wget --reject-regex '(.*)\?(.*)' http://example.com

( --reject-type posixpor defecto) Sin wgetembargo, solo funciona para versiones recientes (> = 1.14) de , según otros comentarios.

Tenga en cuenta que parece que --reject-regexsolo puede usar una vez por wgetllamada. Es decir, debe usar |una sola expresión regular si desea seleccionar varias expresiones regulares:

wget --reject-regex 'expr1|expr2|…' http://example.com

Podría ser cierto sobre el requisito de versión. Tenía v1.12 y la opción no era válida. Después de actualizar a v1.15 fue.
yunzen

La alternancia de expresiones regulares utilizando el |símbolo ("tubería") no me funciona con GNU Wget 1.16.
sampablokuper

0
wget -R "*?action=*"

Esto excluirá todo lo que contenga ?action=en su nombre.


3
"Tenga en cuenta también que las cadenas de consulta (cadenas al final de una URL que comienzan con un signo de interrogación ('?') No se incluyen como parte del nombre de archivo para las reglas de aceptación / rechazo, aunque estas realmente contribuyan al nombre elegido para el archivo local. Se espera que una versión futura de Wget proporcione una opción para permitir la comparación con las cadenas de consulta ".
Tie-fighter

Hmm, debo haberme perdido eso. Parece que no puedes hacer esto con wget, entonces si ni siquiera sabe que son archivos diferentes. Sugiero un programa diferente.
Daisetsu

-3

Yo diría que el lavado de un sitio wiki público es una mala práctica, ya que le agrega una carga adicional.

Si un wiki es público y a los propietarios del sitio no les importa compartir el contenido, generalmente proporcionan un volcado de descarga (backend) (base de datos o lo que sea). Por lo tanto, simplemente debe descargar el paquete de datos, configurar una instancia local del mismo motor wiki, importar los datos y obtener una copia local. Después de eso, si lo desea, puede hacer las sanguijuelas localmente.


hay -w segundos. por ejemplo -w 5. gnu.org/software/wget/manual/html_node/…
barlop
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.