Решение: скрипт на Perl'e (тут просто выводятся возможные варианты, придется дописать проверку наличия нужного вам). Использую `wget` для получения страницы, почему не Lwp::useragent например - не знаю :)
#!/usr/local/bin/perl use strict; my $from = "Москва"; my $to = "Волгоград"; my @dates = ("30.12", "29.12"); # url_encode $from =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg; $to =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg; sub check { my $date = shift; my $data = `wget -qO - "http://pass.rzd.ru/pass/public/pass?STRUCTURE_ID=735&date=
$date&schd_id=1&action=submit&src=$from&layer_id=4922&dst=$to"`; my @result; while($data=~/<tr>\s*<td style="text-align: left" width="80">(.*?)<\/tr>/sg) { my $tdata = $1; $tdata=~/id="sl_train" value="(.*?)"/; my $num = $1; my @types; while($tdata=~/td title='(.*?)'/g) { push @types, $1; } push @result, ($num." ($date)= ".join(",", @types)); } return @result; } my @all; foreach my $date (@dates) { push @all, check($date); } print join("\n", @all);
С помощью скрипта в течении суток было найдено 2 неплохих билета, а сегодня утром один полностью меня удовлетворяющий. Я настроил оповещение по SMS (см. предыдущий пост) оставил скрипт запускаться раз в минуту до первого успеха.
Комментариев нет:
Отправить комментарий