Парсинг многофреймового веб-сайта
Вопрос
Я проверяю наше существующее веб-приложение, которое интенсивно использует HTML-фреймы.Я хотел бы загрузить весь HTML-код в каждом кадре. Есть ли способ сделать это с помощью wget или немного скриптинга?
Решение
в дополнение к ответу Стива:
Охватить любой хост — «-H»
Опция «-H» включает охват хоста, что позволяет рекурсивному запуску Wget посещать любой хост, на который указывает ссылка.Если не будут применены достаточные критерии ограничения рекурсии, эти внешние хосты обычно будут связываться с еще большим количеством хостов, и так далее, пока Wget не перехватит гораздо больше данных, чем вы предполагали.
Ограничить охват определенными доменами — «-D»
Опция «-D» позволяет вам указать домены, которые будут отслеживаться, тем самым ограничивая рекурсию только хостами, принадлежащими этим доменам.Очевидно, это имеет смысл только в сочетании с «-H».
Типичным примером может быть загрузка содержимого «www.server.com», но разрешение загрузки с «images.server.com» и т. д.:
wget -rH -Dserver.com http://www.server.com/
Вы можете указать более одного адреса, разделив их запятой.
например«-Dдомен1.com,домен2.com».
взято из: руководство по wget
Другие советы
wget --recursive --domains=www.mysite.com http://www.mysite.com
Это указывает на то, что рекурсивное сканирование также должно охватывать фреймы и iframe.Будьте осторожны и ограничивайте область рекурсии только вашим веб-сайтом, поскольку вы, вероятно, не захотите сканировать всю сеть.
У wget есть опция -r, чтобы сделать его рекурсивным, попробуйте wget -r -l1 (в случае, если шрифт затрудняет чтение:Эта последняя часть представляет собой более низкий случай L, за которым следует номер один), часть -L1 говорит о том, что она повторяется до максимальной глубины 1.Попробуйте поиграть с этим числом, чтобы собрать больше.