• ベストアンサー

プロキシを経由して他サイトのデータを取得する

プロキシを経由して他サイトのHTMLファイルを取得しようとしているのですがうまくいきません。 私がためしたのはLWP::UserAgentを用いた方法で my $uap = LWP::UserAgent->new; $ENV{HTTP_PROXY} = 'http://proxy:8080'; $ENV{FTP_PROXY} = 'http://proxy:8080/'; $ENV{HTTP_PROXY_USERNAME} = 'name'; $ENV{HTTP_PROXY_PASSWORD} = 'pass'; $uap->env_proxy(); という感じです。 プロキシ内のページからは普通にHTMLファイルが取得できますがプロキシ外はまったく取得できません。 良い方法があったら教えて下さい。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

env_proxy()メソッドは、シェルの環境変数からプロキシ設定を読み込むのであって、%ENVから読み込むわけではないようです。 あらかじめシェルでプロキシの環境変数を設定してからperlを起動させる必要があります。 環境変数経由ではなく、直接uaにproxyを設定させることもできます。 my $uap = LWP::UserAgent->new; $uap->proxy('http','http://some.proxy:8080');

その他の回答 (1)

回答No.1

大文字じゃなくて小文字なのでは? perldoc LWP::UserAgent でマニュアル見ると $ua->env_proxy は *_proxy から値を読むと書いてありますよ。 つまり、 $ENV{'http_proxy'} = 'http://proxy:8080/'; のように書かないと駄目だと思いますよ。

参考URL:
http://homepage3.nifty.com/hippo2000/perltips/LWP/UserAgent.html
mizumaki22
質問者

お礼

ご回答ありがとうございます。ご指摘の通り大文字を小文字に変えてやってみましたが特に大文字の時と違いはありませんでした。 参考URLを読まさせていただきます。 他に何か方法があれば教えて下さいお願いします。

関連するQ&A