Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## http://www.forum-invaders.com.br/vb/showthread.php/41212-Desafio-08-Perl-Navegando-pela-arvore-de-categoria-subcategoria-do-FI
- #!/usr/bin/perl -w
- use strict;
- use warnings;
- use LWP::Simple;
- use List::MoreUtils qw(uniq);
- sub walk {
- my $uri = $_[0];
- my $url = $uri.$_[1];
- $url =~ s/\?s=.+$//;
- my $level = $_[2];
- my $content = get($url);
- my @urls = $content =~ /<h2 class="forumtitle"><a href="(.+?)">/g;
- my @categories = $content =~ /<h2 class="forumtitle"><a href=".+?">(.+?)<\/a>/g;
- @_ = ();
- foreach (@categories) {
- #print "\t"x$level .$_, "\n";
- push(@_, "\t"x$level.$_);
- push(@_, walk($uri, shift @urls, $level + 1));
- }
- my $pages = 1;
- $pages = $1 if($content =~ /PΓ‘gina 1 de (.+?)</);
- my @topics = $content =~ /<a class="title.+?>(.+?)<\/a>/g;
- push(@topics, (get("$url/page$_") =~ /<a class="title.+?>(.+?)<\/a>/g)) for (2..$pages);
- push(@_, map "\t"x$level.$_, uniq(@topics));#Usado para remover os topicos fixos repetidos
- #porem podem existir topicos normais com o mesmo titulo porem com conteudo distinto
- return(@_);
- }
- open (FH, ">", "wtf.txt");
- print FH join("\n", walk("http://www.forum-invaders.com.br/vb/", "", 0));
- close FH;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement