Uso de Wget para rastrear recursivamente un sitio y descargar imágenes


13

¿Cómo se le indica a wget que rastree recursivamente un sitio web y solo descargue ciertos tipos de imágenes?

Intenté usar esto para rastrear un sitio y solo descargar imágenes JPEG:

wget --no-parent --wait=10 --limit-rate=100K --recursive --accept=jpg,jpeg --no-directories http://somedomain/images/page1.html

Sin embargo, aunque page1.html contiene cientos de enlaces a subpáginas, que a su vez tienen enlaces directos a imágenes, wget informa cosas como "Eliminar subpage13.html ya que debe ser rechazado", y nunca descarga ninguna imagen, ya que ninguna está directamente vinculada a desde la página de inicio.

Supongo que esto se debe a que mi --acepto se está utilizando para dirigir el rastreo y filtrar contenido para descargar, mientras que quiero que se use solo para dirigir la descarga de contenido. ¿Cómo puedo hacer que wget rastree todos los enlaces, pero solo descargue archivos con ciertas extensiones como * .jpeg?

EDITAR: Además, algunas páginas son dinámicas y se generan a través de un script CGI (por ejemplo, img.cgi? Fo9s0f989wefw90e). Incluso si agrego cgi a mi lista de aceptación (por ejemplo, --accept = jpg, jpeg, html, cgi), estos siempre se rechazan. ¿Hay alguna forma de evitar esto?

Respuestas:


5

¿Por qué no intentas usar wget -A jpg,jpeg -r http://example.com?


La pregunta indica que algunas de las imágenes tienen la forma /url/path.cgi?query, por lo que su sugerencia no las obtendrá.
Charles Stewart

1

¿Cómo espera que wget conozca el contenido de subpage13.html (y, por lo tanto, los archivos jpg a los que enlaza) si no está permitido descargarlo? Le sugiero que permita html, obtenga lo que desea y luego elimine lo que no desea.


No estoy muy seguro de por qué se rechazan sus CGI ... ¿Hay algún error de wget? Quizás haga wget verbose ( -v) y vea. Podría ser mejor como una pregunta separada.

Dicho esto, si no le importa el ancho de banda y los lotes de descarga, elimine lo que no desea después, no importa.


También echa un vistazo --html-extension

Desde la página del manual:

-MI

--html-extension

Si se descarga un archivo de tipo application / xhtml + xml o text / html y la URL no termina con la expresión regular. [Hh] [Tt] [Mm] [Ll] ?, esta opción hará que el sufijo .html sea agregado al nombre del archivo local. Esto es útil, por ejemplo, cuando está duplicando un sitio remoto que usa páginas .asp, pero desea que las páginas duplicadas sean visibles en su servidor Apache estándar. Otro buen uso para esto es cuando está descargando materiales generados por CGI. Una URL como http://site.com/article.cgi?25 se guardará como article.cgi? 25.html.

Tenga en cuenta que los nombres de archivo modificados de esta manera se volverán a descargar cada vez que vuelva a duplicar un sitio, porque Wget no puede decir que el archivo X.html local corresponde a la URL X remota (ya que aún no sabe que la URL produce una salida de tipo text / html o application / xhtml + xml. Para evitar esta descarga, debe usar -k y -K para que la versión original del archivo se guarde como X.orig.


--restrict-file-names=unix también podría ser útil debido a esas URL de cgi ...


Debería dejar de vincular las opciones de wget ... estaba a punto de señalar --no-parentpero me detendré allí.
Caro

0

También puede usar MetaProducts Offline Explorer sin programar


-1

Intenta agregar la --page-requisitesopción


Eso descarga todos los medios vinculados. ¡¿La única forma de usar wget para descargar imágenes es descargar TODO el contenido de una página ?!
Cerin
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.