Вопрос

Какой самый простой способ преобразовать 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-страницу домашней страницы.Вы также можете запустить ее в своем браузере.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top