Sim, às vezes .
Existem duas coisas que geralmente acontecem. Seu link não funciona mais, então não tenho certeza do cenário atual, então vou resumir em outro link.
Redirecionamento HTTP
Isso é o que você vê com Bit.ly
e outros serviços. O que fazer então é fornecer uma resposta de redirecionamento HTTP. Quando você visita o link , ele redireciona para o URL real. Às vezes, um URL redireciona para outro. Você pode ver isso acontecendo se você conectar a URL no link ou usando [curl][1] -I http://bit.ly/oH3410
você verá retornará um 301 apontando para um novo local .
Então, para lidar com o redirecionamento de HTTP, você só precisa fazer um loop em uma solicitação HTTP HEAD até que você pare de obter respostas nos 300s (esperamos receber 200). Tenha em mente que é possível que eles sejam redirecionados em um loop, que nunca terminará. Você pode fazer isso com o CURL ou qualquer ferramenta HTTP.
Página do Downloader
Isso é o que a maioria dos sites de download usa. Você clica no link de download e leva você a uma página com vários anúncios e diz "Seu download começará em breve" algo parecido. [ Exemplo ]. Com esses, você pode tentar analisar o link direto do URL, mas isso seria específico do site, e a maioria dos sites não o incluirá para evitar que você o contorne. Isso é feito por meio de uma tag meta http-equiv="refresh"
no cabeçalho ou JavaScript (mais comum). O JS geralmente tem um fallback de cabeçalho.
Existe uma solução embora. Se você olhar a fonte na página de download, normalmente verá uma tag <meta http-equiv="refresh">
(geralmente em uma tag <noscript>
) com um atributo de URL
que aponta para o download real. Portanto, use CURL (ou qualquer outra ferramenta HTTP) para baixar a página, analisá-la e pegar esse valor. Um site pode excluir isso, se quiser ser realmente desagradável, exigindo que você tenha JavaScript para baixar arquivos.
Existe provavelmente um bloco de JavaScript que também está vinculado ao download. Pode ser ofuscado ou vinculado por outro URL. Sua milhagem pode variar tentando analisar isso. Também pode haver um "link direto" na página. Você poderia tentar algumas técnicas para encontrar isso, mas novamente isso poderia ser ofuscado via JavaScript ou até mesmo perder todos juntos.