Como buscar HTML em Java
-
09-06-2019 - |
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?
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.