Как получить HTML в Java
-
09-06-2019 - |
Вопрос
Какой самый простой способ преобразовать HTML-содержимое веб-сайта в строку без использования какой-либо внешней библиотеки?
Решение
В настоящее время я использую это:
String content = null;
URLConnection connection = null;
try {
connection = new URL("http://www.google.com").openConnection();
Scanner scanner = new Scanner(connection.getInputStream());
scanner.useDelimiter("\\Z");
content = scanner.next();
scanner.close();
}catch ( Exception ex ) {
ex.printStackTrace();
}
System.out.println(content);
Но не уверен, что есть лучший способ.
Другие советы
У меня это хорошо сработало:
URL url = new URL(theURL);
InputStream is = url.openStream();
int ptr = 0;
StringBuffer buffer = new StringBuffer();
while ((ptr = is.read()) != -1) {
buffer.append((char)ptr);
}
Не уверен, являются ли другие предоставленные решения более эффективными или нет.
Я только что ушел этот пост в вашей другой теме, хотя то, что у вас есть выше, тоже может сработать.Я не думаю, что одно из них было бы легче другого.Доступ к пакетам Apache можно получить, просто используя import org.apache.commons.HttpClient
в верхней части вашего кода.
Редактировать:Забыл ссылку ;)
Хотя это и не ванильно-Java, я предложу более простое решение.Используйте Groovy ;-)
String siteContent = new URL("http://www.google.com").text
Это не библиотека, а инструмент с именем curl, обычно установленный на большинстве серверов, или вы можете легко установить в ubuntu с помощью
sudo apt install curl
Затем извлеките любую html-страницу и сохраните ее в своем локальном файле, как показано в примере
curl https://www.facebook.com/ > fb.html
Вы получите HTML-страницу домашней страницы.Вы также можете запустить ее в своем браузере.