¿Cómo descargar todos los archivos (pero no HTML) de un sitio web usando wget?


162

¿Cómo usar wgety obtener todos los archivos del sitio web?

Necesito todos los archivos excepto los archivos de la página web como HTML, PHP, ASP, etc.


Incluso si desea descargar php, no es posible usar wget. Solo podemos obtener HTML sin formato con wget. Supongo que sabes la razón
Venkateshwaran Selvaraj

NB: siempre verifique wget --spiderprimero y siempre agregue -w 1(o más -w 5) para no inundar el servidor de la otra persona.
isomorphismes

1
¿Cómo puedo descargar todos los archivos pdf en esta página? pualib.com/collection/pua-titles-a.html

Stack Overflow es un sitio para preguntas de programación y desarrollo. Esta pregunta parece estar fuera de tema porque no se trata de programación o desarrollo. Consulte los temas sobre los que puedo preguntar aquí en el Centro de ayuda. Quizás Super User o Unix & Linux Stack Exchange sería un mejor lugar para preguntar. Consulte también ¿Dónde publico preguntas sobre Dev Ops?
jww

Respuestas:


262

Para filtrar extensiones de archivo específicas:

wget -A pdf,jpg -m -p -E -k -K -np http://site/path/

O, si prefiere nombres largos de opciones:

wget --accept pdf,jpg --mirror --page-requisites --adjust-extension --convert-links --backup-converted --no-parent http://site/path/

Esto reflejará el sitio, pero los archivos sin extensión jpgo pdfse eliminarán automáticamente.


17
Si solo desea descargar archivos sin arquitectura de directorios completa, puede usar la opción -nd .
diabloneo

44
¿Qué significan cada una de las banderas?
Jürgen Paul

Creo que distingue entre --acceptmayúsculas y minúsculas, por lo que tendrías que hacerlo--accept pdf,jpg,PDF,JPG
Flimm

8
no estoy seguro si esto es con una nueva versión de wgetpero tiene que especificar un --progresstipo, por ejemplo--progress=dot
jamis

@Flimm también puede usar la --ignore-casebandera para que no se distinga entre --acceptmayúsculas y minúsculas.
Duro

84

Esto descargó todo el sitio web para mí:

wget --no-clobber --convert-links --random-wait -r -p -E -e robots=off -U mozilla http://site/path/

20
+1 para -e robots=off! ¡Esto finalmente solucionó mi problema! :) Gracias
NHDaly

12
La --random-waitopción es genio;)
poitroae

2
@izilotti ¿Puede el propietario del sitio averiguar si WGET sus archivos del sitio con este método?
Elias7

1
@whatIsperfect Definitivamente es posible.
Jack

1
@JackNicholsonn ¿Cómo sabrá el propietario del sitio? El agente utilizado fue Mozilla, lo que significa que todos los encabezados entrarán como un navegador Mozilla, por lo que no sería posible detectar wget como se usa. Por favor corrija si me equivoco. gracias
KhoPhi

63
wget -m -p -E -k -K -np http://site/path/

La página man le dirá qué hacen esas opciones.

wgetsolo seguirá enlaces, si no hay un enlace a un archivo desde la página de índice, entonces wgetno sabrá acerca de su existencia y, por lo tanto, no lo descargará. es decir. ayuda si todos los archivos están vinculados en páginas web o en índices de directorio.


Gracias por responder :) Copia todo el sitio y solo necesito archivos (es decir, txt, pdf, imagen, etc.) en el sitio web
Aniruddhsinh

25

Intenté descargar archivos zip vinculados desde la página de temas de Omeka, tarea bastante similar. Esto funcionó para mí:

wget -A zip -r -l 1 -nd http://omeka.org/add-ons/themes/
  • -A: solo acepta archivos zip
  • -r: recurse
  • -l 1: un nivel profundo (es decir, solo archivos directamente vinculados desde esta página)
  • -nd: no cree una estructura de directorio, simplemente descargue todos los archivos en este directorio.

Todas las respuestas con -k, -K, -Eetc. opciones probablemente no han entendido realmente la cuestión, como los que para volver a escribir las páginas HTML para hacer una estructura local, cambiar el nombre de .phparchivos y así sucesivamente. Irrelevante.

Para obtener literalmente todos los archivos excepto .html etc.

wget -R html,htm,php,asp,jsp,js,py,css -r -l 1 -nd http://yoursite.com

2
-Aes sensible a mayúsculas y minúsculas, creo, así que tendrías que hacerlo-A zip,ZIP
Flimm

7

Puedes probar:

wget --user-agent=Mozilla --content-disposition --mirror --convert-links -E -K -p http://example.com/

También puedes agregar:

-A pdf,ps,djvu,tex,doc,docx,xls,xlsx,gz,ppt,mp4,avi,zip,rar

aceptar las extensiones específicas o rechazar solo extensiones específicas:

-R html,htm,asp,php

o para excluir las áreas específicas:

-X "search*,forum*"

Si los archivos son ignorados por los robots (por ejemplo, los motores de búsqueda), debe agregar también: -e robots=off


5

Prueba esto. Siempre funciona para mi

wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL

5
wget -m -A * -pk -e robots=off www.mysite.com/

esto descargará todo tipo de archivos localmente y los señalará desde el archivo html e ignorará el archivo de robots


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.