Я исследовал это, чтобы найти, что Java -Script работает на этой странице. Существует несколько способов обработки демонов Java -Script, которые загружают содержимое страницы после начальной загрузки браузера HTML. Selenium
, хотя обычно, есть альтернативы. Я не связан с командой разработчиков Spla sh Tool, но я использовал этот инструмент при разработке совершенно другого пакета Java - HTML. Он работает в каждом конкретном случае, но, похоже, успешно справляется с рукопожатием, необходимым для веб-сайта НАСА.
Чтобы выполнить задачу, указанную выше, необходимо выполнить AJAX который возвращает HTML <IMG SRC=url>
элементов. Загрузите сервер Spla sh, используя две команды ниже. После запуска этого сервера вы можете использовать Java для вызова этого сервера. Затем вам нужно будет проанализировать возвращенный HTML, используя Java - HTML синтаксический анализатор или библиотеку поиска. Один из них находится в моей разработке под названием Java - HTML.
Код для запуска сервера Spla sh, который может выполнять вызовы AJAX, необходимые для просмотра этих лунных / марсианских фотографий поверхности НАСА, ниже ... Запустите эти команды в Linux / UNIX Terminal Shell. Убедитесь, что вы запускаете JVM на том же («локальном») компьютере, что и сервер.
Pull the image:
$ sudo docker pull scrapinghub/splash
Start the container:
$ sudo docker run -it -p 8050:8050 --rm scrapinghub/splash
После запуска HTTP-прокси-сервера обработчика Java -Script следующий код (ниже) будет:
- Запустить скрипт, который находится на странице
- Разобрать HTML
- Вернуть запрошенные результаты поиска (изображения).
Эта версия кода здесь возвращает список всех HTML элементов делителя ("<DIV CLASS=...>
"), найденных на странице. Каждое изображение с каждого делителя помещается в StringBuffer
и сохраняется в текстовом файле.
Если вы ожидаете использовать только первое изображение, а остальные никогда не будут использованы, вы можете изменить код и просто запросите первый HTML <DIV CLASS=raw_list_image>
элемент вместо получения HTML Iterator.
Приведенный выше код создаст текстовый файл ниже. ПРИМЕЧАНИЕ: Что выходной файл out.html
также будет сохранен в вашей локальной файловой системе. Этот файл будет содержать страницу post- AJAX HTML, которая была проанализирована парсером Java - HTML. В этот ответ переполнения стека включены только первые три строки / результаты этого текстового файла.
https://mars.jpl.nasa.gov/msl-raw-images/proj/msl/redops/ods/surface/sol/02718/opgs/edr/fcam/FRB_638777552EDR_F0790654FHAZ00341M_-thm.jpg
https://mars.jpl.nasa.gov/msl-raw-images/proj/msl/redops/ods/surface/sol/02718/opgs/edr/fcam/FLB_638777552EDR_F0790654FHAZ00341M_-thm.jpg
https://mars.jpl.nasa.gov/msl-raw-images/proj/msl/redops/ods/surface/sol/02718/opgs/edr/rcam/RRB_638777586EDR_F0790654RHAZ00341M_-thm.jpg
**Remaining results not included here for brevity.