[Moscow.pm] MozRepl
Nikolay Mishin
mi на ya.ru
Сб Апр 11 17:49:13 PDT 2015
с чтения документации,
а так там все просто,
1. ставишь дополнения mozrepl
для firefox
2. ставишь в его настройках
activate on startup
3. далее
пишешь скрипт
наподобие этого
use Modern::Perl;
use charnames ':full';
binmode( STDOUT, ":utf8" );
use WWW::Mechanize::Firefox;
use URI::Split qw( uri_split uri_join );
use Try::Tiny;
my $url = 'http://yandex.ru/';
my $stop = 10;
backup_url_from_page( $url, $stop );
sub backup_url_from_page {
my ( $url, $stop ) = @_;
my $mech = WWW::Mechanize::Firefox->new( tab => 'current', );
$mech->get($url);
sleep 4;
my $collection = collect_all_links_tag($mech);
while ( my ( $file_name, $url ) = each( %{$collection} ) ) {
try {
$mech->get($url);
$mech->save_content( $file_name, $file_name . 'files' );
say "url $url successfully saved in $file_name";
}
catch {
warn "caught error: $_ url \n $url not saved in file $file_name";
};
last if --$stop == 0;
}
}
sub collect_all_links_tag {
my $mech = shift;
my %collection;
for ( $mech->selector('a') ) {
my $name = $_->{innerHTML};
my $href = $_->{href};
my ( $scheme, $auth, $path, $query, $frag ) = uri_split($href);
$path =~ s{/}{_}g;
if ( $path !~ /.*[.](htm|html)$/i ) {
$path = $path . ".html";
}
$collection{$path} = $href;
}
return ( \%collection );
}
https://gist.github.com/mishin/5925468
я тут через firefox скачивал первые 10 линков из поиска яндекса
как-то так,
по сути
это perl интерфейс к javascript библиотеке
http://www.slideshare.net/pavelscherbinin/perl-fornotprogrammersnikolaymishin
80-й слайд
11.04.2015, 22:39, "Кузьменко Константин" <ikkv на yandex.ru>:
> Доброго времени суток,
> Дорогой Moscow.pm
> C чего начать с mozRepl?
>
> --
> Специалист IT, GNU, FLOSS, Open Source
> Моб: +7 (951) 131 33 90
> С уважением,
> Кузьменко Константин Викторович
>
> ,
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
--
С уважением
Николай Мишин
Подробная информация о списке рассылки Moscow-pm