Помогите мне!!! нужно вытащить текст с сайта одного, не одной страницы, а все которые идут в рубрике. Как это сделать? или есть ли какие-нибудь похожие программы с этой функцией?
могу дать ссылку на всю рубрику которую нужно выкачать: http://realty.1777.ru/search_real_poisk.php?real_cat_id=35&vtabs=1 нужен только текст объявления и номера телефонов.
возможно ли сделать чтобы вытаскивало в таком виде : Юго-Запад Тухачевского Перспективный Срочная продажа квартиры без посредников.1-ком Ю/З р-он Ж.К. Перспективный 3/12 кирп. дома, 38.3 кв.м, стяжка-штукатурка, приборы учета, индивидуальное отопление, газовая плита, сейфовая дверь, окна пластик, лоджия застеклена.Дом сдан.ЦЕНА 1000.000 СРОЧНО!!! +7-962-440-8194 Алексей 1000000 руб. Юго-Запад Пирогова 1ком.кв. 8/10эт. 37,7/19,6/10,2 ремонт, 1300000 руб. 21-67-12,8-962-446-1371 Александр Северо-Запад Кулакова просп. пр.. Кулакова, 1-комн. квартира, 2 этаж нового 9этажного кирпичного дома, площадь 37,1/19,2/17,9. лоджия 3,6,сделан ремонт, индивидуальное отопление.цена 1350000руб. торг. 1350000 руб +7-928-326-6831 Виталий
Ну вот очень грубый вариант, просто лениво причёсывать... Code: #!/usr/bin/perl use LWP::UserAgent; use HTTP::Cookies; use HTML::Entities; $ua = LWP::UserAgent->new; $ua->agent("Opera/9.25 (Windows NT 5.1; U; ru)"); $cookie_jar = HTTP::Cookies->new(); $ua->cookie_jar($cookie_jar); sub logg { my ($data, $file) = @_; open(OUT, ">> ".$file); print OUT "$data\n"; close(OUT); } for ($i = 0; $i < 165; $i++) { my $ex = $ua->get('http://realty.1777.ru/search_real_poisk.php?ch=&ord=&poisk=&poisk2=&tabs=0&poisk5=&poisk3=&real_raz_id=&real_cat_id=35&ot=0&do=1000000000&sort=&mix=&pajina='.$i)->content(); my @infos = $ex =~ /<td width=80% valign=top colspan=2><span class=header_red>(.+?)<noindex>/gs; foreach $info (@infos) { $info =~ s/ / /g; decode_entities($info); $info =~ s/<.+?>/ /g; $info =~ s/\s+/ /g; logg($info."\n\n", 'data.txt'); } print('page '.$i."\n"); } system("pause");
Без даты: Code: #!/usr/bin/perl use LWP::UserAgent; use HTTP::Cookies; use HTML::Entities; $ua = LWP::UserAgent->new; $ua->agent("Opera/9.25 (Windows NT 5.1; U; ru)"); $cookie_jar = HTTP::Cookies->new(); $ua->cookie_jar($cookie_jar); sub logg { my ($data, $file) = @_; open(OUT, ">> ".$file); print OUT "$data\n"; close(OUT); } for ($i = 0; $i < 2; $i++) { my $ex = $ua->get('http://realty.1777.ru/search_real_poisk.php?ch=&ord=&poisk=&poisk2=&tabs=0&poisk5=&poisk3=&real_raz_id=&real_cat_id=35&ot=0&do=1000000000&sort=&mix=&pajina='.$i)->content(); my @infos = $ex =~ /<td width=80% valign=top colspan=2><span class=header_red>(.+?)<noindex>/gs; foreach $info (@infos) { $info =~ s/ / /g; decode_entities($info); $info =~ s/<.+?>/ /g; $info =~ s/\s+/ /g; $info =~ s/^(.+?)\s//g; logg($info."\n\n", 'data.txt'); } print('page '.$i."\n"); } system("pause"); Меняй линк в скрипте, чтобы с другими параметрами парсил... Code: my $ex = $ua->get('http://realty.1777.ru/search_real_poisk.php?ch=&ord=&poisk=&poisk2=&tabs=0&poisk5=&poisk3=&real_raz_id=&real_cat_id=35&ot=0&do=1000000000&sort=&mix=&pajina='.$i)->content();
и еще вопрос, есть раздел в том сайте,платный, по авторизации открывается платная услуга и все это висит под одним линуом,а текст разный, это никак обойдется?
Ну там цикл просто стоит for ($i = 0; $i < 2; $i++) исправь на for ($i = 0; $i < 165; $i++) По поводу платного раздела это тебе к хекерам..
а я тут подумал над этим! если сохранить страницу сайта на жесткий, с локального диска будет этот скрип грабить?
а как подключить? я вставляю ссылку на саохраненный фаил ,а он не хочет... вот так делаю my $ex = $ua->get('file://localhost/C:/сохраненная%20страница.mht'.$i)->content();
Вот смотри тебе же пример написали: my $ex = $ua->get('http://realty.1777.ru/search_real_poisk.php?ch=&ord=&poisk=&poisk2=&tabs=0&poisk5=&poisk3=&real_raz_id=&real_cat_id=35&ot=0&do=1000000000&sort=&mix=&pajina='.$i)->content();