Я пытаюсь написать Perl-скрипт с использованием WWW-Mechanize.
Вот мой код:
use DBI;
use JSON;
use WWW::Mechanize;
sub fetch_companies_list
{
my $url = shift;
my $browser = WWW::Mechanize->new( stack_depth => 0 );
my ($content, $json, $parsed_text, $company_name, $company_url);
eval
{
print "Getting the companies list...\n";
$browser->get( $url );
# die "Can't get the companies list.\n" unless( $browser->status );
$content = $browser->content();
# die "Can't get companies names.\n" unless( $browser->status );
$json = new JSON;
$parsed_text = $json->allow_nonref->utf8->relaxed->escape_slash->loose->allow_singlequote->allow_barekey->decode( $content );
foreach(@$parsed_text)
{
$company_name = $_->{name};
fetch_company_info( $company_name, $browser );
}
}
}
fetch_companies_list( "http://api.crunchbase.com/v/1/companies.js" );
Проблема заключается в следующем:
- Я запускаю сценарий, он хорошо заканчивается.
- Я перезапускаю скрипт. Сценарий завершается ошибкой в "$ browser-> get ()".
Я должен подождать некоторое время (около 5 минут), затем он снова начнет работать.
Я работаю в Linux и имею версию WWW-Mechanize 1.66.
Есть идеи, в чем может быть проблема? У меня нет брандмауэра на компьютере или маршрутизаторе.
Более того, раскомментирование строки «die ...» не помогает, поскольку она останавливается внутри вызова get (). Я могу попробовать обновить его до последней версии, которая составляет 1,71, но я хотел бы знать, сталкивался ли кто-то еще с этим модулем Perl.