Java:
Baixando uma página da web
Como fazer:
import java.io.*;
import java.net.*;
public class DownloadPaginaWeb {
public static void main(String[] args) throws IOException {
URL url = new URL("http://www.exemplo.com");
HttpURLConnection conexao = (HttpURLConnection) url.openConnection();
try (BufferedReader reader = new BufferedReader(new InputStreamReader(conexao.getInputStream()))) {
String linha;
StringBuilder paginaCompleta = new StringBuilder();
while ((linha = reader.readLine()) != null) {
paginaCompleta.append(linha);
paginaCompleta.append(System.lineSeparator());
}
System.out.println(paginaCompleta);
} finally {
conexao.disconnect();
}
}
}
Saída de exemplo (fragmento da página web):
<!DOCTYPE html>
<html>
<head>
<title>Página de Exemplo</title>
</head>
<body>
<h1>Este é um cabeçalho</h1>
<p>Este é um parágrafo.</p>
</body>
</html>
Aprofundando
Historicamente, o download de páginas da web começou com o surgimento da internet e o protocolo HTTP. Ferramentas de linha de comando como curl
e wget
foram amplamente usadas antes das bibliotecas dedicadas em várias linguagens de programação.
Alternativas incluem bibliotecas de terceiros como Apache HttpClient ou a biblioteca Jsoup que facilita a raspagem (scrapping) de HTML com métodos robustos para seleção e manipulação de dados.
Sobre execução: é essencial gerenciar corretamente conexões e recursos para evitar vazamentos (leaks) de memória. Java 7 introduziu o try-with-resources para facilitar esse processo. Certifique-se de sempre definir o User-Agent na sua solicitação, porque algumas páginas podem bloquear solicitações que parecem vir de robôs.
Veja também
- Jsoup for Java
- Documentação oficial do URLConnection
- Documentação da classe URL
- Guia para try-with-resources