5

Мне нужно отразить определенный веб-сайт (все страницы в этом домене) любые страницы (но не целые сайты), на которые ссылается веб-сайт.

Я запутался в том, как это сделать

wget -r --level=inf (или другой вариант) будет отражать сайт.

wget -r -H --level=1 получит все ссылки (со всех доменов) на первый уровень.

У любого есть идеи о том, как я мог бы объединить их, чтобы получить весь основной сайт и один уровень вглубь внешних сайтов. Я бился головой о руководство весь день.

Спасибо

2 ответа2

6

К сожалению, это невозможно с помощью wget (и попытка решить эту проблему с -H -l 1 не дает ожидаемого результата). То, что вы хотите, это HTTrack.

httrack --ext-depth=1 http://example.com

Это также может быть сокращено до httrack %e1 http://example.com . Обратите внимание, что HTTrack считает уровни, начинающиеся с 1, а не с 0, поэтому он не будет следовать ссылкам, найденным на внешних страницах, если вы не увеличите глубину.

4

Я бы использовал комбинацию wget -m -k -K -p http://example.com && wget -r -k -K -H -N -l 1 http://example.com .

О двух командах: wget -m -k -K -p http://example.com отразит (-m = -r --level = inf -N) это, преобразует ссылки на ваше локальное зеркало (-k) создает резервную копию исходного файла перед его преобразованием (-K) и загружает все предпосылки для правильного просмотра зеркала (-p).

После этого вторая команда wget -r -k -K -H -N -l 1 http://example.com будет делать то же самое, но только для одного уровня, охватывающего все хосты, и проверять временные метки с -N, поэтому Вы не будете загружать те же файлы снова. Я не включил здесь опцию -p, потому что тогда она могла бы загрузить очень много ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .