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("https://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.