cheech has asked for the wisdom of the Perl Monks concerning the following question:

I've written this script to run a Careerjet search and output the results to a text file. The code is taken almost verbatim from the example on the CPAN doc, though I cant get it to output more than the default pagesize of 20...?
use strict; use WebService::Careerjet; # Open output file open(OUT, '>', "jobs.txt") or die $!; # Create Perl interface to API my $careerjet = WebService::Careerjet->new('en_US'); # Perform a search my $result = $careerjet->search( { 'keywords' => 'weather ri +sk manager', 'location' => 'us', 'pagesize' => '100', } ); # Go through results if ( $result->{'type'} eq 'JOBS') { print "Found ".$result->{'hits'}." jobs\n"; my $jobs = $result->{'jobs'}; foreach my $j(@$jobs) { print OUT "$j->{'url'}~$j->{'title'}~$j->{'company'}~$j->{'sal +ary'}~$j->{'date'}~$j->{'description'}~$j->{'site'}~$j->{'locations'} +"; print OUT "\n"; }; } close (OUT);

260 jobs are found, but only the first 20 are written to my text file. Any ideas? Thanks

20100422 Janitored by Corion: Restored content

Replies are listed 'Best First'.
Re: WebService::Careerjet pagesize..?
by ahmad (Hermit) on Apr 22, 2010 at 12:16 UTC

    Looks like pagesize is not supported by the website any more, All what this module do is initiate a request to the website & return the result for you.

    As I can see, it does tell you how many pages returned in: $result->{'pages'} So you can take that number and loop through it initiating a new request supplying you want the next page by providing 'page' => $page in the options section

    Update:Example Code Added

    #!/usr/bin/perl use warnings; use strict; use WebService::Careerjet; my $careerjet = WebService::Careerjet->new('en_US'); # Search data my $Keywords = 'weather risk manager'; my $Location = 'us'; # Perform a search, asking for the first page my $result = $careerjet->search( {'keywords' => $Keywords , 'location' + => $Location , 'page' => 1, } ); # Go through results if ( $result->{'type'} eq 'JOBS') { OUTPUT($result->{'jobs'}); if ( $result->{'pages'} > 1 ) { foreach my $page ( 2..$result->{'pages'} ) { my $res = $careerjet->search( {'keywords' => $Keywords , ' +location' => $Location , 'page' => $page , } ); if ( $res->{'type'} eq 'JOBS' ) { OUTPUT( $res->{'jobs'} ); } } } } sub OUTPUT { my $lines = shift; open(OUT, '>>', "jobs.txt") or die $!; foreach my $j (@$lines) { print OUT "$j->{'url'}~$j->{'title'}~$j->{'company'}~$j->{'sal +ary'}~$j->{'date'}~$j->{'description'}~$j->{'site'}~$j->{'locations'} +\n"; } }