use LWP::Simple;
use strict;
use threads;
use threads::shared;
my $start : shared=1;
my $finish : shared=10;
my $potok=5;
my @trl;
for(0..$potok-1) {$trl[$_] = threads->create(\&pars);}
for(@trl) { $_->join; }
sub pars {
while ($start <= $finish) {
my $url = undef;
{lock($start); $url ="url/$start/"; ++$start;}
print "Search on URL: $url\n";
my $response=get $url;
}
}
Теперь он очень быстро получает странички (Выводит на стдоут search on url: блаблабла
и тут начинает висеть (даже когда 5 потоков) + ничего не пишет в файл, минуты через 3 развисает и едет дальше...
Таск менеджер показывает бездействие системы 98%!!
PHP код:
my $start : shared=20;
my $finish : shared=100;
my $potok=5;
my @trl;
sub pars {
while ($start <= $finish){
my $url=undef;
{lock($start); $url ="url/$start/"; ++$start;}
print "Search on URL: $url\n";
my $response=get $url;
my @massiv=$response=~m/регулярка/ig;
open(TEXT,">>text.txt");
foreach (@massiv) { print TEXT $_ . "\n"; }
}
}
Последний раз редактировалось $p01nt; 05.01.2009 в 16:12..
С вопросом который выше - разобрался(проблема была в дедике)), но у меня такое ощущение ... то что парсер не пашет или пашет не правильно Он качает 100 страниц, а парсит из них только 1! Потом опять 100, парсит одну.
Код выше.
есть же вообще Encoding and Decoding URLs via perl "перла "или нет так почему такая статья существует ,прочетать можно тут и вообще не надо отвечать я сам разобрался
Как подключить модуль к Perl не устанавливая его?
Проблема с Curl, в скрипте:
use WWW::Curl::easy;
Качаю Curl с cpan ( curl.pm) в ту же папку где скрипт и заменяю строчку
use WWW::Curl::easy;
на
use Curl;
но выдает ашипку:
Цитата:
Can't locate loadable object for module WWW::Curl in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at Curl.pm line 12
BEGIN failed--compilation aborted at Curl.pm line 12.
Compilation failed in require at Client.pm line 4.
BEGIN failed--compilation aborted at Client.pm line 4.
Compilation failed in require at xxx.pl line 9.
BEGIN failed--compilation aborted at xxx.pl line 9.
Как пропавить?
P.S. устанавливать модуль нельзя
Последний раз редактировалось $p01nt; 08.01.2009 в 14:41..
Обьясняю ситуацию, пишу скрипт автореггер, к нему нужно прикрутить антикапчу, скрипт антикапчи использует cURL, мой скрипт будет запускатся на множестве дедиков, на каждый ставить курл - нет желания.
Kaimi как правильно добавить папку?