プロが教える店舗&オフィスのセキュリティ対策術

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% …
print $site;


#yahooのトップページHTMLを取得する
use LWP::Simple;
$site = get "http://www.yahoo.co.jp/";
print $site;

A 回答 (3件)

wikipedia では、LWP::Simple のアクセスを許可していないのだと思います。


get() の代わりに getprint() を使用すると、次のエラーメッセージが出ます。

$ perl -MLWP::Simple -e "getprint 'http://ja.wikipedia.ogr/';"
403 Forbidden <URL:http://ja.wikipedia.org/>

下記の URL でほぼ同じ問題を取り上げていますのでご覧ください。

参考URL:http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.ph …
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
参考URLで解決しました。

お礼日時:2009/01/09 17:26
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2009/01/09 17:26

ユーザーエージェントで弾いてるんじゃないですか


Googleとかもlibwww-perlの方弾いてます

LWP::Simpleのリクエストヘッダはこれで403 Forbiddenとエラーページ返ってきてます

GET http://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%A4% … HTTP/1.1
TE: deflate,gzip;q=0.3
Connection: TE, close
Host: ja.wikipedia.org
User-Agent: LWP::Simple/5.814

LWPを使った場合はこれで200 OKでちゃんとコンテンツ返ってきてます

GET http://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%A4% … HTTP/1.1
TE: deflate,gzip;q=0.3
Connection: TE, close
Host: ja.wikipedia.org
User-Agent: libwww-perl/5.814
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2009/01/09 17:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!