Em nosso post sobre web scraping, falamos um pouco do que é e como é utilizado esta técnica muito útil. Então resolvi compartilhar com vocês um implementação simples de web scraping em java utilizando a biblioteca Jsoup.
A biblioteca Jsoup foi desenvolvida para trabalhar com HTML para realizar a extração e manipulação de dados, usando métodos do DOM, CSS e métodos jQuery. É um projeto open source e está disponível no GitHub.
Let's get started!
Antes de começar, é preciso acessar a página de download do Jsoup e baixar os jars disponíveis. Se você utiliza maven, poderá copiar a dependência e inserir em seu pom.xml:
<dependency> <!-- jsoup HTML parser library @ http://jsoup.org/ --> <groupid>org.jsoup</groupid> <artifactid>jsoup</artifactid> <version>1.9.2</version> </dependency>
Assim que estiver tudo certo em seu projeto, criaremos uma classe de teste.
Esta classe ficará da seguinte forma:
package com.deviscoming; import java.io.IOException; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; public class ExemploJSoup { public static void main(String[] args) { try { Document doc = Jsoup.connect("http://www.google.com").get(); String titulo = doc.title(); System.out.println("Título do site: " + titulo ); } catch (IOException e) { e.printStackTrace(); } } }
No console de sua IDE será possível visualizar a mensagem com o título do site:
Título do site: Google
Para obter toda a página Html, é preciso utilizar o método estático Jsoup.connect() e utilizar o método get(), pois, desta forma, você obterá um objeto Document. Este objeto possui um documento HTML armazenado internamente. Então para obter informações da página, basta utilizar os métodos disponíveis a partir deste objeto.
Caso queira obter elementos específicos, você pode utilizar o método select(). Ele retorna um objeto Elements, sendo este objeto um conjunto de objetos Element.
package com.deviscoming; import java.io.IOException; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.select.Elements; public class ExemploJSoup { public static void main(String[] args) { try { Document doc = Jsoup.connect("http://www.google.com").get(); String titulo = doc.title(); //System.out.println("Título do site: " + titulo ); //exibe todas as tags a existentes na página html System.out.println("Links do site (tags a): " + doc.select("a")); //exibe o texto da tag a System.out.println("href: "+doc.select("a").text()); //exibe todas as tags que possuem o atributo href Elements elements = doc.select("a[href]"); for(int i = 0; i < elements.size();i++){ System.out.println("href: "+elements.get(i).text()); } } catch (IOException e) { e.printStackTrace(); } } }
Para ter mais informações sobre essa biblioteca, aconselho a acessarem o site do Jsoup, lá tem várias dicas, downloads e a documentação completa para consulta. Acessem também o site Raspando web com Jsoup, de onde foi tirado o conteúdo deste post e lá tem mais dicas e informações essenciais para o desenvolvimento do seu projeto. E também acessem o GitHub, analisem, estudem e quem sabe você não acaba se tornando parte da equipe de desenvolvimento? rsrsr
Até mais!
;)
Nenhum comentário:
Postar um comentário