Usando wget para descargar css con get params


1

Estoy tratando de reflejar un sitio, pero el enlace CSS tiene la URL: http://127.0.0.1:2368/assets/css/screen.css?v=c44dc08367

El uso de wget para descargar el sitio guarda el archivo CSS con el nombre del archivo screen.css?v=c44dc08367

Intenté usar --adjust-extensionflag pero eso guarda el archivo como screen.css?v=c44dc08367.css¿Es posible guardarlo de la manera correcta como screen.cssusando wget?

Estoy usando GNU Wget 1.14 basado en darwin12.5.0.

EDITAR: No puedo especificar el nombre del archivo ya que estoy reflejando todo el sitio, por lo que el comando real es así. El enlace CSS está dentro de la página (que wget obtiene automáticamente)

wget \
               --recursive \              # follow links to download entire site
               --page-requisites \        # grab everything: css / inlined images
               --no-parent \              # don't go to parent level
               --directory-prefix static \# download contents to static/ folder
               --no-host-directories \    # don't create domain named folder
               --adjust-extension \
               http://127.0.0.1:2368/

¿Resolvió esto al final sin scripts manuales / personalizados?
Caballo

Respuestas:


0

Desafortunadamente, wget no hará suposiciones sobre lo que desea descargar a menos que se lo indique. No le importa si su archivo es una imagen, un documento, un archivo comprimido, etc.

El archivo se guarda como el URL con el que terminó, por lo que desde la última barra hasta el final del URL. En su caso, eso es .css? V = c44dc08367. La parte posterior a la extensión de archivo real (.css) está contenida en la URL, pero es un parámetro de consulta HTTP. Para wget, sin embargo, determinará el nombre del archivo de salida.

Si desea especificar un nombre de archivo de salida para wget, agregue la opción -O (mayúscula O):

wget http://127.0.0.1:2368/assets/css/screen.css?v=c44dc08367 -O screen.css

Finalmente, está la opción --content-disposition que puede resultar en el establecimiento del nombre de archivo apropiado. Pero esto depende completamente del servidor que está descargando para enviar la información correcta del encabezado.

Excepciones a partir de aquí: ¿Por qué wget'ing una imagen me da un archivo, no una imagen?


Gracias Gaurav, pero no creo que -O ayude en mi caso. Por favor, consulte la EDITAR. Además, obtengo "screen.css \? V = c44dc08367.css" usando --content-disposition, que tampoco me ayuda. ¿Hay alguna forma en que wget pueda ignorar el parámetro de consulta para el nombre de archivo?
Akshit Khurana

No, creo que no puedes hacer eso en wget, pero puedes inventar un script para hacer la cosa.
Gaurav Joseph
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.