1

Тема: CMD/BAT: работаем с консольной версией httrack

HTTrack – это свободный оффлайн-браузер под Windows 9x/NT/2000/XP или Linux/Unix/BSD. Сайт программы: http://www.httrack.com/.

Возможности программы включают рекурсивное зеркалирование интернет-сайтов на локальном диске с заменой относительных ссылок, обновление ранее отзеркалированных сайтов, докачка частично  отзеркалированных сайтов, интерфейс командной строки и пошаговый GUI-интерфейс (в режиме мастера) с многочисленными настройками.

HTTrack имеет интерфейс командной строки, что позволяет его использовать в скриптах.

Чтобы иметь возможность вызывать консольную программу httrack.exe из любого каталога, поместите путь к ней в переменную среды PATH. Это можно сделать, например, так: нажмите Win+Pause, чтобы открыть окно "Свойства системы", перейдите на вкладку "Дополнтельно" и нажмите на кнопку "Переменные среды"; в окне "Переменные среды" в списке системных переменных найдите переменную Path и нажмите кнопку "Изменить".

Используйте httrack --help, чтобы получить справку.
Например, вот так можно закачать один файл:
httrack --get http://mysite.info/file.zip
Синтаксис вызова httrack.exe:
httrack <URLs> [-option] [+<URL_FILTER>] [-<URL_FILTER>]

Далее - примеры некоторых полезных опций.

-O path_mirror[,path_cache_and_logfiles]
--path <param>

Путь для сохранения закачанного файла или зеркала (по умолчанию — текущий каталог).

-g
--get-files

Нет зеркалирования, только получить файлы (сохраняются в текущий каталог). Другие опции, касающиеся параметров зеркалирования, будут проигнорированы.

-i
--continue

Продолжить ранее прерванное зеркалирование, используя кэш. Без этой опции, если в текущем каталоге находится зеркало, оно будет полностью заменено после выдачи интерактивного запроса об этом. По умолчанию, если в текущем каталоге находится зеркало,  оно дополняется (восстанавливается).

-rN
--depth[=N]

Установить глубину зеркала в N (по умолчанию r9999).

-%eN
--ext-depth[=N]

Установить глубину зеркала для внешних ссылок в N (по умолчанию %e0).

-cN
--sockets[=N]

Число соединений для многопоточной закачки (по умолчанию c8).

-%cN
--connection-per-second[=N]

Максимальное число соединений в секунду для многопоточной закачки (по умолчанию %c10).

-%L <file>
--list <param>

Добавить список URL во внешнем файле (по одному URL в строке).

-I
--index

Создавать индексную страницу. Эта опция работает по умолчанию (-I0 – не создавать).

-N4
HTML в папке "web", рисунки и другое в папках "web/xxx", где "xxx" – расширение файла (например, все "gif" помещаются в "web/gif").

Пример вызова:

httrack -%L "C:\Temp\urls.txt" -r3 -I0 -N4 -c1 -%c1 +*.jpg +*.css +*.png +*.ico +*.js -*cdesc* -*cp=all*

Последние два URL-фильтра в примере позволяют не загружать по ссылкам странички, которые генерируют php-скрипты, имеющие параметры "cdesc" и "cp=all" в адресной строке.

Последняя версия Httrack (3.42), похоже, имеет нехороший баг: при зеркалировании некоторые (а иногда многие) файлы не загружаются, т.к. программа считает их уже загруженными (в логе можно наблюдать предупреждение "...link is probably looping, type unknown, aborting..."). На сайте программы можно скачать версию 3.33, в которой такого бага не замечено.

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

2

Re: CMD/BAT: работаем с консольной версией httrack

C помощью параметра -P с консольной версией httrack можно работать из-за прокси, например:

httrack -%L "C:\Temp\urls.txt" -r3 -I0 -N4 -P адрес_прокси:порт_прокси -c1 -%c1 +*.jpg +*.css +*.png +*.ico +*.js -*cdesc* -*cp=all*

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.