Модуль грабит каталог машин с сайта http://www.autonews.ru/catalog/
Он работал до 2004 года а потом все… :(
Вот скрипт:
#!/usr/bin/perl -w
##!perl -w
my $rus = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя’;
my $eng = 'abvgdeozziyklmnoprstufhscsstimeuaabvgdeozziyklmnoprstufhscsstimeua’;
print «Content-type: text/html\n\n»;
print '
';
use Time::Local 'timelocal_nocheck’;
use File::Path;
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Response;
my $resdir_ru = 'cats/0/domestic.cat’;
my $resdir_en = 'cats/0/inomarki.cat’;
my $preurl = 'http://www.autonews.ru’;
my $starturl = '/catalogue.shtml’;
my $rettime = 180;
my $expdays = 7;
my $firmmask = '\/catalog\/firms\.shtml\?’;
my $modmask = '\/catalog\/model\.shtml\?’;
my $mdfmask = '\/catalog\/modif\.shtml\?’;
my $photomask = '\/catalog\/photo\.shtml\?’;
my $vphotomask = 'photo\.shtml\?’;
my ($gfirm, $gmod);
unlink(«heist_an.log»);
my $bt = time;
my @t = (localtime($bt))[0..5];
my $ft = sprintf(«%04d/%02d/%02d %02d:%02d:%02d», $t[5] + 1900, $t[4] + 1, $t[3], $t[2], $t[1], $t[0]);
plog(«$ft: начало обработки»);
worm($starturl);
my $et = time;
@t = (localtime($et))[0..5];
$ft = sprintf(«%04d/%02d/%02d %02d:%02d:%02d», $t[5] + 1900, $t[4] + 1, $t[3], $t[2], $t[1], $t[0]);
@t = (gmtime($et — $bt))[0..2];
my $pt = sprintf(«%02d:%02d:%02d», $t[2], $t[1], $t[0]);
plog(«$ft: успешное завершение, время обработки $pt\n»);
#####################################################################
sub plog {
my ($w, $f) = ($_[0], $_[0]);
$w =~ s/ / /g;
open (LOG, «>>heist_an.log»);
print $w.»
»;
print LOG $f.«\n»;
close (LOG);
}
sub getn {
my $url = $_[0];
my $ua = LWP::UserAgent->new;
my $request = HTTP::Request->new(GET => $url);
my $response = $ua->request($request);
my $st = time;
while ((not $response->is_success) && ((time — $st) <= $rettime) && ($response->code() != 404)) {
$ua = LWP::UserAgent->new;
$request = HTTP::Request->new(GET => $url);
$response = $ua->request($request);
}
if ($response->code() == 404) {
return undef;
} elsif (not $response->is_success) {
my $et = time;
my @t = (localtime($et))[0..5];
my $ft = sprintf(«%04d/%02d/%02d %02d:%02d:%02d», $t[5] + 1900, $t[4] + 1, $t[3], $t[2], $t[1], $t[0]);
plog(«$ft: исчерпано время повторов запроса\n»);
die;
}
return $response->content;
}
sub worm {
mkdir($resdir_ru);
open(F, «>$resdir_ru/title»);
print F 'Отечественные модели’;
close(F);
mkdir($resdir_en);
open(F, «>$resdir_en/title»);
print F 'Иномарки’;
close(F);
plog(«запрос каталога: $_[0]»);
my $cont = getn($preurl.$_[0]);
$cont =~ s/(?:\t|\x0D|\x0A|\ \;)*//g;
$cont =~ s/ +/ /g;
$cont =~ s///g;
$pacont =~ s/^.+?Другие фотографии//;
my $icnt = 0;
if (not open(I, «$mdir/$svar.var/pix/thumb/$icnt.$ext»)) {
plog(» — запрос малого изображения фотоальбома варианта: $ni»);
my $icont = getn($preurl.«/img/modifs/».$ni);
plog(» сохранение малого изображения варианта $icnt.$ext»);
open(I, «>$mdir/$svar.var/pix/thumb/$icnt.$ext»);
plog(» малое изображение варианта не найдено»);
plog(» малое изображения фотоальбома варианта $icnt.$ext уже существует»);
if (not open(I, «$mdir/$svar.var/pix/large/$icnt.$ext»)) {
plog(» — запрос большого изображения фотоальбома варианта: $ni»);
my $icont = getn($preurl.«/img/modifb/».$ni);
plog(» сохранение большого изображения варианта $icnt.$ext»);
open(I, «>$mdir/$svar.var/pix/large/$icnt.$ext»);
plog(» большое изображение варианта не найдено»);
plog(» большоге изображения фотоальбома варианта $icnt.$ext уже существует»);
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Ну за 10 wmz можно посмотреть, а так… лень. :)
А потом — что?
Да, кстати, какое вознаграждение? ;)
5 ZWM
Я нашел ошибку. :-)
Скрипт не работает потому что
1) Специально были внесены изменения для неработоспособности в скрипт(ИМХО)
2) Не работает потому что были внесены изменения в структуру сайта
P.S на счет ИМХО уже не имхо =) видимо кто то постарался чтобы скрипт не пахал =))
К примеру
переменные $mdir $svar etc не определены
и вообще там куча косяков..
Наверное чем то вы обидели разработчика…=)
P.P.S
catalogue.shtml вообще не существует, что говорит о том что возможно
была изменена структура сайта..имхо
И возможно его перенастроить?
Можно но уже за wmz ибо тут люди не станут тратить свое время для того что бы за вас сделать работу (имхо).
Это первый вариант
Второй:
Читайте/учите перл и переписывайте сами.
Третий:
Заплатите ту цену которую скажет участник форума который возмется его переписать.
Четверый…
….
Ага, вот и первый клиент. Я согласен за 10 wmz, как уже говорил.
Помоему дядя не согласится заплатить деньгу, видимо не спроста скрипт был недописан/испорчен…=]
А все таки, надо попросить Дмитрия, открыть раздел 'Разработка ПО за $' =]
Плюс адын! юнегс фриланс и центр помощи студентусам-раздолбаям!