14

По сути, я хочу сканировать весь сайт с помощью Wget, но он мне нужен, чтобы НИКОГДА не загружать другие ресурсы (например, изображения, CSS, JS и т.д.). Я хочу только файлы HTML.

Поиски в Google совершенно бесполезны.

Вот команда, которую я пробовал:

wget --limit-rate=200k --no-clobber --convert-links --random-wait -r -E -e robots=off -U "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36" -A html --domain=www.example.com http://www.example.com

Наш сайт представляет собой гибридный плоский PHP и CMS. Таким образом, HTML-файлы могут быть /path/to/page , /path/to/page/ , /path/to/page.php или /path/to/page.html .

Я даже включил -R js,css но он по-прежнему загружает файлы, затем отклоняет их (бессмысленная трата пропускной способности, загрузки процессора и сервера!).

2 ответа2

13

Комментарий @ ernie по поводу --ignore-tags ведет меня по правильному пути! Когда я посмотрел вверх --ignore-tags в man , я заметил --follow-tags .

Установка --follow-tags=a позволила мне пропустить img , link , script и т.д.

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

Если кто-нибудь найдет способ разрешить сканирование ВСЕХ тегов, но запретит wget отклонять файлы только после их загрузки (они должны отклоняться на основе имени файла или заголовка Content-type перед загрузкой), я с радостью приму их ответ!

5

как насчет добавления опций:

--reject '*.js,*.css,*.ico,*.txt,*.gif,*.jpg,*.jpeg,*.png,*.mp3,*.pdf,*.tgz,*.flv,*.avi,*.mpeg,*.iso'
--ignore-tags=img,link,script 
--header="Accept: text/html"

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