Web crawler

download Web crawler

If you can't read please download the document

description

Palestra sobre Web Crawler.

Transcript of Web crawler

  • 1. [email protected] So Paulo Perl Monger Yet Another Perl Conference Web Crawler Daniel de O. Mantovani Aware

2. [email protected] So Paulo Perl Monger Web Crawler Web Crawler um software que faz uma navegao automatizada na Web. 3. [email protected] So Paulo Perl Monger Mercado O Google usa Web Crawler, sem esse conceito no tem Google. 4. [email protected] So Paulo Perl Monger Usabilidade up-to-date 5. [email protected] So Paulo Perl Monger Outras Empresas JCotei Buscap Bing Yahoo Zura Aware 6. [email protected] So Paulo Perl Monger Perl Maturidade CPAN Cultura Comunidade 7. [email protected] So Paulo Perl Monger Maturidade 23 anos de evoluo 8. [email protected] So Paulo Perl Monger CPAN 18588 mdulos e enquanto eu falo, a comunidade Perl produz Perl 9. [email protected] So Paulo Perl Monger Cultura TIMTOWTDI There Is More Than One Way To Do It 10. [email protected] So Paulo Perl Monger Comunidade IRC irc.perl.org #sao-paulo.pm #rio-pm Lista sao-paulo.pm.org/lista rio.pm.org/lista.pl 11. [email protected] So Paulo Perl Monger Antes Regular Expression Caos Inferno Manuteno ? No existe isso 12. [email protected] So Paulo Perl Monger From Hell while ($string =~ m{(.+?)}sig) { my $link = 'http://www.foo.com.br/sistema/'.$1; my $cat = $2; $link =~ s/Y=d+/Y=/io; if($cat !~ m/Novidades/io) { push(@{$spider->{linhas_cfg}}, $spider- >dicionario($spider->retira_html($cat)) . ";$link"); } } 13. [email protected] So Paulo Perl Monger O cdigo anterior no code-golf um cdigo usado num ambiente real de produo. No me perguntem o que o cdigo anterior faz 14. [email protected] So Paulo Perl Monger Evoluo HTML::Element->HTML::TreeBuilder- >HTML::TreeBuilder::XPath 15. [email protected] So Paulo Perl Monger XPath XPath usado para navegar atravs de elementos e atributos em um documento XML 16. [email protected] So Paulo Perl Monger Exemplo //div[@class=menu][1] 17. [email protected] So Paulo Perl Monger Termologia Nodes Items 18. [email protected] So Paulo Perl Monger Relacionamento Parent Children Siblings Ancestors Descendants 19. [email protected] So Paulo Perl Monger Parent Cada elemento e atributo tem um parent. Harry PotterJ K. Rowling200529.99 O elemento book pai do title,author, year e price. 20. [email protected] So Paulo Perl Monger Children Children pode ter zero, one ou mais childrens. Harry PotterJ K. Rowling200529.99 O elemento, title, author, year e price so todas childrens do elemento book. 21. [email protected] So Paulo Perl Monger Siblings So nodes que tem o mesmo elemento. Harry PotterJ K. Rowling200529.99 O node title, author, year e price so todos siblings. 22. [email protected] So Paulo Perl Monger Ancestors So todos os antepassados do elemento. Harry PotterJ K. Rowling200529.99 O ancestors do title o book e o bookstore. 23. [email protected] So Paulo Perl Monger Descendants So todos os descendentes do elemento. Harry PotterJ K. Rowling200529.99 Os descendants do elemento bookstore so book, e todos irmos do title. (e o title) 24. [email protected] So Paulo Perl Monger WWW::Mechanize Um mdulo Perl feito para automatizar as aes de um browser. Ele cuida de todos os os mtodos HTTP, ele cuida de at um certo nvel de parsing como links e imagens, suporte SSL, cookies, permite customizar o cabealho HTTP, te redireciona automaticamente, Proxy e autentificao HTTP. Entre outros. 25. [email protected] So Paulo Perl Monger Mechanize ;) use WWW::Mechanize; my $mech = WWW::Mechanize->new( agent_alias => 'Linux Mozilla', stack_depth => 5 ); $mech->get($url); print $mech->content; 26. [email protected] So Paulo Perl Monger HTML::TreeBuilder::XPath my $tree = HTML::TreeBuilder::XPath->new_from_content($content); my $menu = $xpath->findnodes('//ul[@class="sMenu"]')->[0]; my $sub_menus = $menu->findnodes('.//ul'); 27. [email protected] So Paulo Perl Monger Firebug Uma tima ferramenta 28. [email protected] So Paulo Perl Monger Problemas JavaScript Captcha Bloqueio de IP HTML que no HTML 29. [email protected] So Paulo Perl Monger Captcha use Image::OCR::Tesseract 'get_ocr'; my $image = './hi.jpg'; my $text = get_ocr($image); 30. [email protected] So Paulo Perl Monger Imagemagick resize 31. [email protected] So Paulo Perl Monger Requisies Live HTTP Header 32. [email protected] So Paulo Perl Monger Agradecimento Daniel Ruoso Eden Cardim Gabriel Vieira