Pergunta

Sem o uso de nenhuma biblioteca externa, qual é a maneira mais simples de buscar o conteúdo HTML de um site em uma String?

Foi útil?

Solução

Atualmente estou usando isso:

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

Mas não tenho certeza se existe uma maneira melhor.

Outras dicas

Isso funcionou bem para mim:

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

Não tenho certeza se as outras soluções fornecidas são mais eficientes ou não.

acabei de sair esta postagem em seu outro tópico, embora o que você tem acima também possa funcionar.Não acho que nenhum dos dois seria mais fácil que o outro.Os pacotes Apache podem ser acessados ​​apenas usando import org.apache.commons.HttpClient no topo do seu código.

Editar:Esqueci o link ;)

Embora não seja vanilla-Java, oferecerei uma solução mais simples.Use o Groovy ;-)

String siteContent = new URL("http://www.google.com").text

Não é uma biblioteca, mas uma ferramenta chamada curl geralmente instalada na maioria dos servidores ou você pode instalar facilmente no Ubuntu

sudo apt install curl

Em seguida, busque qualquer página HTML e armazene-a em seu arquivo local, como exemplo

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

Você obterá o html da página inicial. Você também pode executá-lo em seu navegador.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top