режим wget spider может быть в состоянии это сделать, но это не работа ни для curl, ни для wget, вам нужно получить страницу загрузки, а затем извлечь URL загрузки в самую последнюю версию Исходя из этого HTML, некоторые страницы также предоставляют файл cookie на странице загрузки и требуют, чтобы вы отправили этот файл cookie для загрузки фактического файла, это работа для языка, который понимает HTTP и HTML. PHP - один из таких языков, на примере страницы загрузки ccleaner:
#!/usr/bin/env php
<?php
$ch = curl_init("https://www.ccleaner.com/fr-fr/ccleaner/download/standard");
curl_setopt_array($ch, array(
CURLOPT_COOKIEFILE => '',
CURLOPT_ENCODING => '',
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_SSL_VERIFYPEER => 0
));
$html = curl_exec($ch);
$domd = @DOMDocument::loadHTML($html);
$xp = new DOMXPath($domd);
$download_element = $xp->query('//a[contains(text(),"start the download")]')->item(0);
$download_url = $download_element->getAttribute("href");
$download_name = basename($download_url); // fetching it from the headers of the download would be more reliable but cba
echo "download name: \"{$download_name}\" - url: {$download_url}\n";
curl_setopt($ch, CURLOPT_URL, $download_url);
$installer_binary = curl_exec($ch);
file_put_contents($download_name, $installer_binary);
этот скрипт извлекает страницу загрузки, затем извлекает атрибут "href" (url) элемента <a href="download_url">start the download</a>
, содержащего текст start the download
, а затем загружает все, на что указывает этот URL. это выходит за рамки wget / curl, используйте язык сценариев.