
Я пытаюсь извлечь URL-адреса из веб-страницы до определенных пользователем n уровней с помощью wget. Я попробовал это
wget -r -l$2 --reject=gif -O out.html www.google.com | sed -n 's/.*href="\([^"]*\).*/\1/p'` "
Отображается только первый уровень. Он не анализирует ни один уровень. Как это исправить?
решение1
Избавьтесь от $2, если только вы не присваиваете переменную 2=1 или что-то подобное где-либо еще. -l$2 приведет к тому, что wget выведет данные, wget: --level: Invalid number
которые не будут хорошо передаваться в sed.
ты можешь сделать:
wget -l 2 <address>
или
wget --length=2 <address>
Вас также может заинтересовать опция no-parent, которая не позволит wget перемещаться вверх по каталогу (n уровней). Это особенно полезная опция при рекурсивном извлечении, поскольку она гарантирует, что будут загружены только файлы ниже определенной иерархии.
wget -np <address>