2015-11-02 1 views
0

Когда веб-браузер запрашивает загрузку URL-адреса, он выдаст HTTP-запрос на веб-сервер, чтобы получить ответ, соответствующий этому HTTP-запросу. Получив ответ, он будет обрабатывать ответ (документы HTML) для получения других ресурсов, если таковые имеются. Поэтому веб-браузер автоматически выдаст больше HTTP-запросов к веб-серверу.Имитация поведения веб-браузеров в Java

В Java мы можем использовать java.net.URLConnection для запроса HTTP-запроса для определенного URL-адреса. Ответ будет доступен после очень короткого времени. Затем нам нужно будет самостоятельно проанализировать полученный HTML-ответ и выдать HTTP-запрос для каждого из обнаруженных ресурсов один за другим.

  • Есть ли способ, с помощью которого мы можем автоматически передавать эти автоматические запросы HTTP в Java?

  • Или, по крайней мере, существует какой-либо парсер, который анализирует HTML-документ и извлекает список всех ресурсов, которые необходимо запросить?

+1

Ищете «браузер модели java simulate», чтобы вы могли туда попасть. http://htmlunit.sourceforge.net/ – scrappedcola

+0

Вы, по сути, спрашиваете: «Как написать веб-браузер на Java?» который является слишком широкой темой для формата вопросов и ответов, который должен быть SO. В противном случае вы просите рекомендации для инструмента анализа синтаксического анализа HTML - см. # 4 в разделе [help/on-topic] –

ответ

0

Ваш вопрос довольно неспецифичен. Каковы ваши намерения? (Вы хотите написать браузер, протестировать сервер или протестировать веб-сайт?)

Возможно, вы захотите проверить Apache JMeter, который представляет собой пакет Java для запуска нагрузочных тестов на веб-серверах.

Вы также можете захотеть взглянуть на Selenium Webdriver, которая позволяет писать автоматизированные тесты для веб-сайтов и моделировать поведение браузеров (например, посылать запросы, получать и анализировать ответы ...)

Является ли это то, что ты ищешь?

+0

Я собираюсь протестировать веб-сайт. Я делаю это обычно с помощью PhantomJS, который является безгласным веб-браузером. Теперь я нахожусь в том, как мне нужно получить доступ к функциям JavaScript, получаемым веб-браузером. Используя PhantomJS, в настоящее время у меня нет доступа к телу ответов HTTP. Тогда я не могу получить доступ к функциям JavaScript. Но одно решение для меня - получить список всех HTTP-запросов и отправить их на веб-сервер, чтобы получить ответ ... Теперь я думаю, возможно, я могу использовать Java вместо PhantomJS для этой части моего проекта просто для того, чтобы получить функции JavaScript ... – Suo6613

+0

Я не хочу использовать Selenium Web driver, но я проверю первую ссылку, которую вы только что предложили, чтобы решить, разрешает ли она мою проблему. Однако, спасибо... – Suo6613

Смежные вопросы