Как получить HTML в Java - PullRequest
       34

Как получить HTML в Java

26 голосов
/ 28 августа 2008

Без использования какой-либо внешней библиотеки, какой самый простой способ извлечь HTML-контент веб-сайта в строку?

Ответы [ 5 ]

35 голосов
/ 28 августа 2008

Я сейчас использую это:

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);

Но не уверен, что есть лучший способ.

21 голосов
/ 29 августа 2008

Это хорошо сработало для меня:

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);
}

Не уверен, более ли эффективны другие предложенные решения или нет.

2 голосов
/ 05 марта 2013

Пока не vanilla-Java, я предложу более простое решение. Используйте Groovy; -)

String siteContent = new URL("http://www.google.com").text
2 голосов
/ 28 августа 2008

Я только что оставил этот пост в другой ветке , хотя то, что у вас есть выше, может работать. Я не думаю, что любой из них будет легче, чем другой. Доступ к пакетам Apache можно получить, просто набрав import org.apache.commons.HttpClient вверху кода.

Редактировать: Забыли ссылку;)

0 голосов
/ 14 июля 2018

Это не библиотека, а инструмент с именем curl, обычно устанавливаемый на большинстве серверов, или вы можете легко установить в Ubuntu

sudo apt install curl

Затем извлеките любую HTML-страницу и сохраните ее в локальном файле, как в примере

curl https://www.facebook.com/ > fb.html

Вы получите домашнюю страницу html. Вы также можете запустить ее в своем браузере.

...