3

私は perl の初心者で、Mechanize の初心者です。これまでのところ、http 経由でサイトを取得しようとしても問題ありませんでした。

ここで、https でサイトを取得する必要があります。Crypt::SSLeayPPM経由でインストールしました。

ただし、を使用する$mech->get($url)と、これが唯一の応答です。

"<HTML></HTML>"

ステータスと成功を確認しましたが、どちらも問題ありませんでした (200 と 1)。

これが私のコードです:

use strict;
use warnings;
use WWW::Mechanize;
use Crypt::SSLeay;
$ENV{HTTPS_PROXY} = 'http://username:pw@host:port';
//I have the https_proxy env variable set globally too.

my $url = 'https://google.com';
//Every https site has the same response, 
//so I don't think google would cause problems.

my $mech = WWW::Mechanize->new(noproxy => 0);
$mech->get($url) or die "Couldn't load page";

print "Content:\n".$mech->response()->content()."\n\n";

ご覧のとおり、私はプロキシの背後にいます。設定してみた

$mech->proxy($myproxy);

しかし無駄に。ファイルにフェッチしようとしましたが、確認すると同じ応答内容が得られました。

私は初心者であり、まだ学ぶべきことがたくさんあるので、どんな種類のアドバイスでも大歓迎です。ありがとう!

4

1 に答える 1

1

答えはここにあると思います:HTTPSリクエストにLWPにCrypt :: SSLeayを使用させるにはどうすればよいですか?

 use Net::SSL (); # From Crypt-SSLeay
 BEGIN {
   $Net::HTTPS::SSL_SOCKET_CLASS = "Net::SSL"; # Force use of Net::SSL
   $ENV{HTTPS_PROXY} = 'http://10.0.3.1:3128'; #your proxy!
   $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;
 }
于 2013-01-31T12:41:04.040 に答える