terça-feira, 15 de janeiro de 2013

Simple HTML DOM: Mineração de dados com PHP


O que é?


Nada mais é que um parser HTML escrito em PHP5+, que permite manipular HTML de uma forma incrivelmente fácil!

No que isso pode ajudar?


Dentre todas as possibilidades, posso citar um exemplo bem simples, que me veio em mente logo que conheci essa biblioteca.
Um tempo atras(meados de 2011), freqüentemente eu e meus colegas de trabalho fazíamos bolões da mega-sena, mas fazíamos muitos jogos que se repetiam durante varias rodadas, então nós precisávamos de um aplicativo para controlar dinamicamente sem que precisássemos conferir todos os jogos a cada rodada. Foi aí que veio a ideia... Vamos criar um software! UAUUU...
Após uma correria de 3 dias, fizemos um sisteminha.

Nosso trabalho para usar esse tal sisteminha era:

1) fazer o download do arquivo dos resultados da mega (http://www1.caixa.gov.br/loterias/loterias/megasena/download.asp);

2) Descompactar o zip;

3) Importar o arquivo xls (era xls na época) no sistema;

4) E então verificar se tínhamos ganho algo;

Muito trabalho, não acha???

Se conhecêssemos esse "Simple HTML DOM" naquela época, teríamos somente o trabalho de acessar o sisteminha e verificar se tínhamos ganho algo.

Porque??? Como???

Simples...

Com essa biblioteca(Simple HTML DOM) poderiamos fazer o nosso sistema acessar o site dos resultados da mega-sena(http://www1.caixa.gov.br/loterias/loterias/megasena/megasena_resultado.asp) e pegar os resultados em tempo real da própria tela, então o sistema analisa, compara com os nossos jogos e logo mostra se ganhamos algo.

Não entendeu nada?


Ok...

Vamos a prática de um outro exemplo tirado do próprio site da biblioteca e traduzido:

web_crawl_google.php:
------

// Cria o DOM da URL (Transforma em um objeto PHP)
$html = file_get_html('http://www.google.com/');

// Procura todas as imagens da pagina principal do Google,

// para cada elemento imprime a propriedade src.
// Exemplo: <img src="pastaX/img.jpg">   iria imprimir    pastaX/img.jpg
foreach($html->find('img') as $element) {
           echo $element->src . '<br>';
}

// Busca todos os links e também imprime na tela.
foreach($html->find('a') as $element)  {
           echo $element->href . '<br>';
}

------

Ou seja... Por de baixo dos panos, o PHP foi la no site do Google, pegou todo o HTML gerado que por sua vez foi manipulado com o código acima, que por fim apresenta pro usuário final somente os SRC das imagens e os HREF dos links.

Mas só serve para isso?


Claro que não... Dê asas a sua imaginação e use para o que quiser!

Lembre-se que você pode pegar elementos específicos de um site e trata-los da forma que você quiser.

Você pode por exemplo...


Pegar informações do seu veículo no site do Detran, se sair alguma multa o sistema envia um email para você avisando... Legal né???

Por onde começo?


Acesse o site da biblioteca, la você vai encontrar vários exemplos e o download, que é o mais importante.

http://simplehtmldom.sourceforge.net/


Então faça algo legal e me conte nos comentários!


Agradecimentos:


Em especial ao Jean Farias Roldão que me apresentou a biblioteca.


Comentem e perguntem, ficarei feliz em ajudar no que puder.

Nenhum comentário:

Postar um comentário