Capturando HTML de Página Web com Java
Tempos atrás criei uma série de tutoriais sobre manipulação de arquivos em Java. Recebi algumas mensagens perguntando se seria possível copiar o conteúdo HTML de uma página web e gravar este conteúdo em um arquivo. Nunca tinha tentado fazer isso por que nunca precisei. Até nem sei se é útil para alguma coisa, mas resolvi fazer uns testes e descobri que é tão simples quando criar um arquivo.
1. Implementando
Vamos implementar a classe LoadPage
para ler um site qualquer e capturar seu conteúdo. Iremos imprimir no console o conteúdo HTML do site e também salvá-lo em um arquivo HTML.
Conforme a Listagem 1, criamos um objeto java.net.URL
o qual recebe o endereço da página que vamos capturar. O objeto java.io.File
recebe o local e o nome do arquivo em qual salvaremos a página capturada.
No método getPage()
criamos um objeto java.io.BufferedReader
para ler a página como se estivessemos lendo um arquivo. E o objeto java.io.BufferedWriter
irá salvar a página em um arquivo.
package br.mb.tutorialCapturaPaginaWeb;
import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
public class LoadPage {
public void getPage(URL url, File file) throws IOException {
BufferedReader in =
new BufferedReader(new InputStreamReader(url.openStream()));
BufferedWriter out = new BufferedWriter(new FileWriter(file));
String inputLine;
while ((inputLine = in.readLine()) != null) {
// Imprime página no console
System.out.println(inputLine);
// Grava pagina no arquivo
out.write(inputLine);
out.newLine();
}
in.close();
out.flush();
out.close();
}
public static void main(String[] args) {
URL url = null;
File file = new File("C:\\TutorialArquivos\\page.html");
try {
url = new URL("http://ondetrabalhar.com/vagas/1399/arquiteto-java");
new LoadPage().getPage(url, file);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
É claro que após salvar o arquivo e abri-lo, nós não teremos o layout da página montando conforme o original. Isto ocorre por conta dos arquivos do tipo css, imagens, javascript, entre outros, que não tem seu endereço encontrado fora do servidor da página.
Quando a página é salva no arquivo, é como se tivéssemos ido até as opções do nosso navegador e clicado na opção “Exibir código fonte” e então utilizássemos um ctrl + c
para copiá-la e um ctrl + v
para colá-la em um editor de texto. Então, fica a dica para quem algum dia precisar de algo deste tipo.