Я хочу проверить веб-сайт рекурсивно с помощью wget в Ubuntu и остановить ее после того, как 300 страниц будут загружены. Я только сохранил файл HTML страницы. В настоящее время это - команда, которую я использую:
wget -r --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL --follow-tags=a
Я хочу, чтобы код так или иначе считал файлы HTML в локальном DIR и если счетчик показывает 300, остановите проверку. Там должен так или иначе сделать это?
Вы могли попробовать что-то вроде этого:
фон Ваш wget
управляйте и запишите его PID ($!
)
настройте inotifywatch
на каталоге получения для подсчета файлов
уничтожьте wget
обработайте, когда количество превысит порог
Проиллюстрировать, с помощью функции оболочки для моделирования рекурсивного wget
:
#!/bin/bash
local_dir=tmp
wgetcmd() {
local i=0
while :
do
# simulate page download
echo "Downloading... $((++i))"
touch "$local_dir/file${i}.html"
sleep 2
done
}
wgetcmd & pid=$!
j=1
while kill -s 0 $pid && read path action file
do
if (( ++j >= 30 )); then
echo "Reached page limit"
kill $pid
break;
fi
done < <(inotifywait -m "$local_dir" -e close_write)