• ベストアンサー

LWPモジュールについて教えてください。

Head_Syndicateの回答

回答No.1

まず、useとrequireはどちらかで構いません。 use イコール require + importですから。また、これ、perldoc LWP::Simple がすでに間違ってるみたいですが(ActivePerl 5.6.0 build 623)、 getの後ろにはセミコロンが必要ですね。get(URL)のURLには実際は どこかのURLが書かれているんですよね? 試しに以下のように編集してみてください。 use LWP::Simple; $contents = get("http://www.goo.ne.jp"); print $contents; なお、もしそのプログラムをプロバイダ上に置いてCGIとして実行している のだとしたら、エラーメッセージが500 Internal…ですので、 どんなエラーなのかよくわかりませんよね。 あなたのパソコンにPerlをインストールして、 C:\>perl -cw myscript.cgi とシンタックスのチェックをすることをお薦めします。すくなくとも ちょっとした打ち間違いによる文法エラーはこれでチェックすることができます。

pion16
質問者

補足

分かりやすいご説明ありがとうございます。 use LWP::Simple; と追記しただけで、エラーではじかれてしまい、まだ、教えていただいた内容まで、到達できていません。 この場合、サーバー側にActivePeal等のインストールが必要になるのでしょうか?

関連するQ&A

  • LWP::Simpleでのgetについて

    つい先日ローカルにサーバ環境をインストールし、 色々とプログラムを試しているのですが、 タイトルに記述したLWP::Simpleのgetを使用すると500エラーとなってしまいます 実行内容は下記のような単純なものです use LWP::Simple; $url = "http://localhost/test.cgi";#自動リンク防止に「:」を全角にしてます $html = get($url); print "Content-Type: text/html\n\n"; print $html; ・test.cgi単体では動作しています(単純に文字を出力するのみ) ・$url をローカルでなく外部URL(例 yahoo等)にしてもエラーとなりました ・getを行わなず $html = "a";のように任意文字列にした場合は出力されます ・perl/lib/LWP/ には Simple.pm が入っています ・use 行をevalで囲み $@ を見てみましたがエラーは入っていませんでした ・セキュリティソフトがブロックしている可能性も考え、切ってみましたが駄目でした ・レンタルサーバー上で実行した場合は成功しました($urlを外部URLにて) こちらはApacheやOS側で他に何か設定等が必要なのでしょうか それとも不足しているものがあるのか・・・手詰まり状態です 些細なことで結構ですので、助言いただけると助かります 以上、よろしくお願いします ----------------------------------- Apache/2.2.4 Perl/v5.8.8 WinXP/HE サーバ環境はXAMPP及びXAMPP Add-Onsで一括インストール

  • main::getのモジュール?

    Perl5.6(Win)を使っております。 Perlで過去にスクリプトを書いたのですが、 Undefined subroutine &main::get called at ./test.pl line 312. とエラーが出たので、 use LWP::Simple;かなと思い。モジュールを追加したのですが まだエラーが表示されます。 main::getと、名前空間まで同じになので、何か細工していたのかな と思っていましたが、思い出せません。 他にどんなモジュールがあるのでしょうか? また、現在インストールしているモジュールの一覧とかわかる方法はありますか?

    • ベストアンサー
    • Perl
  • モジュールを使わずにhttpアクセスするには

    レンタルサーバ上に置いた perlプログラムで 他サイトのページの内容を httpアクセスして取り出そうと思っています。 サーバの制限がきつくて LWP::Simpleなどのモジュールを全く使えないのですが、 どのようにして httpアクセスをさせればよいのでしょうか。 URLを投げてページの内容をテキストファイルで取り出すという 単純なことができれば充分です。

    • ベストアンサー
    • Perl
  • Perl LWPでproxyがうまく刺さらない

    Perl初心者です。 LWPでどうしてもproxyが通りません・・・。 何が悪いのかわかりません。教えてください。 モジュールは全て導入を確認しました。 よろしくお願いします。 稚拙なミスだったらごめんなさい。 use LWP::Simple; use LWP::UserAgent; use HTTP::Request::Common; my $ua = LWP::UserAgent->new( timeout=>"5" ); #cybersyndromeさんからLWP::Simpleでproxyを取得 $_ = get('http://www.cybersyndrome.net/pla5.html'); #proxyをリストに代入 (@proxy_list)=/\"\>(.*?)\<\/a\>\<\/li\>\<li\>/g; #適当なサイトをリクエストのターゲットに $r = new HTTP::Request GET,('http://taruo.net/e/'); #前述のターゲットへリクエストしてひとつづつproxyが通るか確かめたいのに何故かすべてすぐにERRORに for($i = 0;$i <= 10;$i++){ $proxy = 'http://'.$proxy_list[$i]; $ua->proxy ([qw(http https)] , $proxy); $req = $ua->request($r); if ($req->is_success) { print "Success!\n"; }else{ print "Error\n"; } }

    • ベストアンサー
    • Perl
  • LWP::simpleがiswebで使えない

    use LWP::Simple; print (get("http://www.yahoo.co.jp/")); このように使っていたのですが、iswebにアップロードしたところ、ダウンロード出来ずに使えなくなりました。 iswebでは使えないようです。 なので、これの代わりになる方法を探しているのですが、何かありますか? Webページのソースを取得するだけでいいです。 なにかあるでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • LWPについて

    Perl,CGI初心者です。 LWPのUserAgent(もしくはSimple)を使ってWeb上のHTMLをGETして、そのHTMLの特定の部分を 出力するCGIプログラムを作成しています。 コマンドプロンプトで<perl "cgiプログラム>とすると想定通りの結果が得られるにも かかわらず、いざブラウザ経由で当該cgiにアクセスしようとすると、エラーにはなりま せんが、データがGETできていません。 何か原因は考えられるでしょうか? LWPを使用する際はApache側にも何か設定が必要なのでしょうか? Webサーバ:Windows XP,Apache2.2,Perl5.8.8

    • ベストアンサー
    • Perl
  • Perlで言う、LWP HTTPをPHPで

    PerlでのスクリプトをPHPに移行しようかと考えております。(勉強のため) それで、PerlのモジュールでいうLWPとHTTPに代わるクラスライブラリ(API)は、どれにあたるのでしょうか? 具体的には、LWP::UserAgentとHTTP::Requestです。 ※詳しくは、 my $wa = new LWP::UserAgent; my $req = new HTTP::Request(GET => $url); my $res = $wa->request($req); PHPのドキュメント(http://www.php.net/manual/ja/)を見たのですが、いまいちピンときませんでした。 参考URLで結構ですので、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • LWPでHTMLが取得できないことがある

    LWPを使ってHTMLを取得しようとしているのですが、取得可能のサイト、不可能のサイトがあります。 たとえばyahooのトップページは取得できますが、wikipediaは取得できません。取得できない場合、エラーメッセージは出ません。 このようになる理由を教えてください。 よろしくお願いいたします。 環境:windowsXP & ActivePerl、またはwindowsXP & cygwin コード: #wikipediaのトップページHTMLを取得する use LWP::Simple; $site = get "http://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8"; print $site; #yahooのトップページHTMLを取得する use LWP::Simple; $site = get "http://www.yahoo.co.jp/"; print $site;

    • ベストアンサー
    • Perl
  • LWP::Simpleについて

    LWP::Simpleで、ヘッダー情報を取得する場合は head で、ファイルの内容を取得する場合はget を利用しますが、ヘッダーとファイルの内容を 同時に取得できる関数または 別のモジュールを探しています。 そのようなものご存じでしょうか?

    • ベストアンサー
    • Perl
  • LWPによるページ取得の問題

    すいません、アホです。いろいろ調べましたが、まったくみつかりませんでした。この質問をすることは初歩すぎて失礼かとおもいますが、堪忍してくださいませ。 LWPで相互リンクをされているかどうかをCGIファイルの登録ページ後に判断したいプログラムですが、同じCGIファイル内に登録ページがありまして、<INPUT size=30 name=url>のように相手リンクを登録した自分のHTMLを書いてsubmitさせて、 if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'}); } else { $buffer = $ENV{'QUERY_STRING'}; } で、取り出し、$FORM{'url'}まできます。URLがちゃんと$FORM{'url'}に入っているのは画面で確認できるのですが、下記のように指定した場合、相手HTMLを取得できません。エラーメッセージはでないで、真っ白い画面がでます。 $url = $FORM{'url'}; use LWP::Simple; $content = get("$url"); print "Content-type: text/html\n\n$content"; 下記はちゃんとうつります。 $url = 'http://www.yahoo.co.jp'; use LWP::Simple; $content = get("$url"); print "Content-type: text/html\n\n$content"; これは$FORM{'url'}のエンコードの問題なのでしょうか? まことに申し訳ありませんが、その方法をできれば具体的にお教えくださいませ。 何卒、宜しく御願いいたします。m_ _ m