Как сканировать, используя wget для загрузки ТОЛЬКО файлов HTML (игнорировать изображения, css, js)

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
Какую команду вы пробовали до сих пор? Если имена файлов совпадают, вы можете использовать флаг -R. В качестве альтернативы вы можете использовать флаг --ignore-tags и игнорировать теги script и img.
Эрни
Я пытался использовать --accept = html, но он загружает файлы CSS, ТО затем удаляет их. Я хочу, чтобы они никогда не загружались. Впрочем, запрос заголовка - это нормально. Например, я замечаю Length: 558 [text/css]файлы, которые мне не нужны. Если бы я мог остановить запрос, если заголовок не вернулся text/html, я был бы в восторге.
Натан JB

Ответы:

13

Комментарий Эрни о том, чтобы --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"
Спир
источник