HelioSS ? ссылка постоянная. В моем случае дело обстояло иначе. Пару лет назад, когда у меня выход в Интернет («мир») был намного медленнее и дороже, чем сейчас, я ежедневно скачивал с сайта своего провайдера nnCron'ом свежие вирусные базы для антивируса avast!
Ссылка на эти базы каждый раз была новая (по крайней мере, помню, что каждый раз приходилось парсить HTML-страницу, чтобы вытащить из нее ссылку). Также помню, что дату создания и размер файла на FTP-сервере извлекал из той же HTML-страницы. Как получал HTML-файл, уже забыл (наверное, использовал стандартное nnCron'овское слово HTTP-GET), а вот нужный файл с вирусными базами скачивал wget'ом, поскольку слово HTTP-GET протокол FTP не поддерживает.
К сожалению, понятия не имею, как узнать размер файла и дату создания на сервере без парсинга страниц... Возможно, wget умеет это делать?
Добавлено: P.S. Не, вру: ссылка вроде была одна и та же. Получается, что HTML-файл я парсил только ради даты и времени (наверное, чтобы не качать файл с базами, если он не обновился, а то его размер был несколько десятков мегабайт).
Добавлено: Похоже, wget может пригодиться. Вот что говорится в справке:
Цитата: Time-Stamping
One of the most important aspects of mirroring information from the Internet is updating your archives.
Downloading the whole archive again and again, just to replace a few changed files is expensive, both in terms of wasted bandwidth and money, and the time to do the update. This is why all the mirroring tools offer the option of incremental updating.
Such an updating mechanism means that the remote server is scanned in search of new files. Only those new files will be downloaded in the place of the old ones.
A file is considered new if one of these two conditions are met:
1. A file of that name does not already exist locally.
2. A file of that name does exist, but the remote file was modified more recently than the local file.
To implement this, the program needs to be aware of the time of last modification of both local and remote files. We call this information the time-stamp of a file.
The time-stamping in GNU Wget is turned on using --timestamping (-N) option, or through timestamping = on directive in .wgetrc. With this option, for each file it intends to download, Wget will check whether a local file of the same name exists. If it does, and the remote file is older, Wget will not download it.
If the local file does not exist, or the sizes of the files do not match, Wget will download the remote file no matter what the time-stamps say.
Добавлено: Вот что значит не читать справки к софту!