#!/usr/bin/perl -w require HTTP::Request; require HTTP::Cookies; require LWP::UserAgent; sub get_url { my $request = HTTP::Request->new(GET => $_[0]); my $ua = LWP::UserAgent->new; $request->header('Cookie' => 'region=65;'); my $response = $ua->request($request); return $response->content; } sub get_ads { my %ads; while ($_[0] =~ /([^<]+)<\/a>/g) { $ads{$2} = $1; } return %ads; } sub get_ads_count { my $ad = get_url('http://irr.by/cat/realestate/rooms/rent/data/tpl-view/'.$_[0]); my $id = substr($ad, index($ad, '/user/data/')+11, 32); my $all = get_url('http://irr.by/user/data/'.$id); my $count = 0; while ($all =~ /
/g) { ++$count; } return $count; } my $deep = 20; # глубина в страницах for ($i = 2; $i <= $deep; ++$i) { print "\n[Searching at page $i]\n\n"; my $page = get_url('http://irr.by/cat/realestate/rooms/rent/data/field:date/sort:desc/page:'.$i); my %ads = get_ads($page); # { title => link } #print "$page\n"; foreach $key (keys %ads) { my $count = get_ads_count($ads{$key}); #print "Count: $count\n"; if ($count < 15 and $count != 0) { print "[$count] Честное объявление: $key\n http://irr.by/cat/realestate/rent-flats/longtime/data/tpl-view/$ads{$key}\n\n"; } } }