Curl не эмулирует браузер, он просто загружает один файл с сервера, поэтому он никогда не загрузит эти изображения.
В HTTP пользовательский агент (обычно браузер, но в этом случае библиотека curl
) отправляет запрос на определенный ресурс (URL); затем сервер делает все, что ему нужно, и затем возвращает ответ; и тогда все готово.
В вашем случае сервер отвечает HTML-страницей, содержащей немного JavaScript. При загрузке браузером этот JavaScript будет запускаться и загружать изображения; но curl
не является браузером, поэтому не будет запускать этот JavaScript.
Существуют библиотеки, которые эмулируют браузер, который сможет запустить это; они называются «безголовыми браузерами», и быстрый поиск обнаружил эту попытку по полному списку .
Стоит также помнить, что даже после запуска JavaScript изображения, вероятно, являются не частью HTML, а ссылками на другие файлы. Если вы не сохраните их, ваш сохраненный HTML-файл не будет отображать никаких изображений, если вы отключите интернет, поэтому вам также может понадобиться подумать о том, как архивировать все ресурсы, необходимые для отображения страницы , а не только сама страница.