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