Nuestros programadores estrellas agotaron sus reservas de café, en su búsqueda día y noche por la resolución, hasta que Héctor halló la solución en Beanstalk así que ahora la comparte aquí.
Solución:
Una solicitud HTTP puede contener más encabezados que no están configurados por curl o wget. Por ejemplo:
- Cookie: esta es la razón más probable por la que se rechazaría una solicitud, he visto que esto sucede en los sitios de descarga. dado una galleta
key=val
puede configurarlo con el-b key=val
(o--cookie key=val
) opción paracurl
. - Referente (sic): al hacer clic en un enlace en una página web, la mayoría de los navegadores tienden a enviar la página actual como referente. No se debe confiar en él, pero incluso eBay no pudo restablecer una contraseña cuando este encabezado estaba ausente. Así que sí, puede suceder. El
curl
opción para esto es-e URL
y--referer URL
. - Autorización: esto se está volviendo menos popular ahora debido a la interfaz de usuario incontrolable del cuadro de diálogo de nombre de usuario/contraseña, pero aún es posible. Se puede configurar en
curl
con el-u user:password
(o--user user:password
) opción. - User-Agent: algunas solicitudes arrojarán diferentes respuestas según el User Agent. Esto se puede usar para bien (proporcionar la descarga real en lugar de una lista de espejos) o para mal (rechazar los agentes de usuario que no comienzan con
Mozilla
o contenerWget
ocurl
).
Normalmente puede usar las herramientas de desarrollo de su navegador (Firefox y Chrome lo admiten) para leer los encabezados enviados por su navegador. Si la conexión no está encriptada (es decir, no usa HTTPS), también puede usar un rastreador de paquetes como Wireshark para este propósito.
Además de estos encabezados, los sitios web también pueden desencadenar algunas acciones entre bastidores que cambian de estado. Por ejemplo, al abrir una página, es posible que se realice una solicitud en segundo plano para preparar el enlace de descarga. O se produce una redirección en la página. Estas acciones suelen hacer uso de Javascript, pero también puede haber un marco oculto para facilitar estas acciones.
Si está buscando un método para obtener fácilmente archivos de un sitio de descarga, eche un vistazo a plowdown, incluido con plowshare.
Intenté todo lo anterior, pero no tuve suerte; usó la herramienta de navegador de desarrollo para obtener el agente de usuario stringuna vez que agregué lo siguiente, éxito:
--user-agent="Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
Solo quiero agregar a las respuestas anteriores que podría usar la función “Copiar como cURL” presente en las herramientas de desarrollo de Chrome (desde v26.0) y Firebug (desde v1.12). Puede acceder a esta función haciendo clic con el botón derecho en la fila de solicitud en la pestaña Red.
Recuerda algo, que te concedemos explicar si te ayudó.