Как загрузить полный веб-сайт?

После исправления кода веб-сайта для использования CDN (переписывая все URL-адреса на изображения, js и css), Мне нужно проверить все страницы в домене, чтобы убедиться, что все ресурсы извлечены из CDN.

Все страницы сайтов доступны через ссылки, без изолированных страниц.

В настоящее время я использую FireBug и проверяю представление "Net"...

Есть ли какой-либо автоматизированный способ дать доменное имя и запросить все страницы + ресурсы домена?

Update:

ОК, я нашел, что могу использовать wget так:

wget -p --no-cache -e robots=off -m -H -D cdn.domain.com,www.domain.com -o site1.log www.domain.com

варианты объяснены:

  • -p - также загружать ресурсы (изображения, css, js и т.д.).
  • --no-cache - получить реальный объект, не возвращать серверный кешированный объект
  • -e robots=off - игнорировать robots и no-follow направления
  • -m - зеркальный сайт (следуйте ссылкам)
  • -H - промежуточные хосты (также следуйте за другими доменами)
  • -D cdn.domain.com,www.domain.com - укажите домены ведьм, чтобы следовать, в противном случае будет следовать каждая ссылка со страницы
  • -o site1.log - войти в файл site1.log
  • -U "Mozilla/5.0" - необязательно: подделка пользовательского агента - полезно, если сервер возвращает разные данные для разных браузеров
  • www.domain.com - сайт для загрузки

Наслаждайтесь!

Ответ 1

В документации wget есть этот бит:

Собственно, для загрузки одной страницы и всех ее реквизитов (даже если они существуют на отдельных веб-сайтах), и убедитесь, что отображаются партии правильно локально, этот автор любит использовать несколько опций в дополнение to -p:

      wget -E -H -k -K -p http://site/document

Ключ - это параметр -H, что означает --span-hosts -> go to foreign hosts when recursive. Я не знаю, соответствует ли это нормальным гиперссылкам или только ресурсам, но вы должны попробовать.

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

  • проанализируйте его с помощью библиотеки, которая зависит от языка, который вы используете для сценариев. Проверьте каждый <img />, <link /> и <script /> для ссылок CDN.
  • используйте регулярные выражения, чтобы проверить, что URL-адреса ресурсов содержат домен CDN. Смотрите это:), хотя в этом ограниченном случае это может быть не слишком сложно.

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