Si a veces .
Hay dos cosas que suceden comúnmente. Su enlace ya no funciona, por lo que no estoy seguro del escenario real en este caso, por lo que resumiré en otro enlace.
Redirección HTTP
Esto es lo que ves con Bit.ly
otros servicios. Lo que debe hacer es proporcionar una respuesta de redireccionamiento HTTP. Cuando visita http://bit.ly/oH3410 , redirige a la URL real. A veces una URL redirige a otra. Puede ver que esto sucede si conecta la URL en http://web-sniffer.net/ o si usa [curl][1] -I http://bit.ly/oH3410
, verá un 301 que apunta a una nueva ubicación.
Entonces, para lidiar con la redirección de HTTP, solo necesita hacer un bucle de una solicitud de HEAD de HTTP hasta que deje de recibir respuestas en los 300 (con suerte obteniendo un 200). Tenga en cuenta que es posible que se redirijan en un bucle, que nunca terminará. Puede hacer esto con CURL o cualquier herramienta HTTP.
Página de descarga
Esto es lo que usan la mayoría de los sitios de descarga. Hace clic en el enlace de descarga y lo lleva a una página con un montón de anuncios y dice "Su descarga comenzará en breve" algo similar. [ Ejemplo ] Con estos puede intentar analizar el enlace directo real desde la URL, pero eso sería específico del sitio, y la mayoría de los sitios no lo incluirán para evitar que lo eluda. Esto se hace a través de una meta http-equiv="refresh"
etiqueta en el encabezado o JavaScript (el más común). Sin embargo, el JS generalmente tiene un respaldo de encabezado.
Aunque existe una solución. Si mira la fuente en la página de descarga, generalmente verá una <meta http-equiv="refresh">
etiqueta (generalmente en una <noscript>
etiqueta) con un atributo URL
que apunta a la descarga real. Por lo tanto, use CURL (o cualquier otra herramienta HTTP) para descargar la página, analizarla y obtener ese valor. Sin embargo, un sitio puede excluir esto si quiere ser realmente desagradable, lo que requiere que tenga JavaScript para descargar archivos.
Probablemente también haya un bloque de JavaScript que enlace a la descarga. Puede estar ofuscado o vinculado desde otra URL. Su millaje puede variar tratando de analizar eso. También puede haber un "enlace directo" en la página. Podrías probar algunas técnicas para encontrar eso, pero de nuevo eso podría ofuscarse a través de JavaScript o incluso faltar todos juntos.
edit
para ver la fuente de rebajas de cómo lo hice.