Stupid Perl/Apache Question

Brian Chabot brian at datasquire.net
Thu Dec 7 13:57:41 EST 2006


I'm trying to use a perl script to scrape a site under https.

Using perl-WWW-Mechanize-1.20-1mdv2007.0 from RPM.
perl-Apache-Test-1.28-2mdv2007.0
apache-base-2.2.3-1mdv2007.0
apache-mod_perl-2.0.2-8mdv2007.0

The script parses fine till it goes to scrape the page...

The line that's failing is:

        $mech->get( $URL );

...where $URL is an HTTPS address with basic auth.  I tried using

$auth = MIME::Base64::encode("$adminuser:$adminpass") || die "Error: $!\n";
$mech->add_header (Authorization=>"Basic $auth") || die "Error: $!\n";

and

my @args = (
     Authorization => "Basic " .
           MIME::Base64::encode( $adminuser . ':' . $adminpass )
);

and even putting the username and password in the URL.

I have IO::Socket::SSL and Crypt::SSLeay both loaded.

Yet I keep seeing this error when I run the script from the browser:
Error GETing https://path/to/me/called/script: Can't connect to
host.domain.tld:443 (Illegal seek) at /var/www/cgi-bin/myscript.cgi line
168, referer: http://host.domain.tld/cgi-bin/myscript.cgi

Line 168 is simply:

        $mech->get( $URL, @args );


or

        $mech->get( $URL );


It worked on another machine just fine... but that other machine is dead.

Anyone see anything I might be doing wrong here?  The documentation for
Mechanize could be a lot better.


Thanks!

Brian


More information about the gnhlug-discuss mailing list