парсить веб-страницу до n уровней с помощью wget

парсить веб-страницу до n уровней с помощью wget

Я пытаюсь извлечь 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>

Связанный контент