ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

ホーム > コミュニティ > PC、インターネット > 超初心者向けCGI講座 > トピック一覧 > WEBからコンテンツを取得。

超初心者向けCGI講座コミュのWEBからコンテンツを取得。

  • mixiチェック
  • このエントリーをはてなブックマークに追加

コミュ内全体

ネットワークを通じたプログラミングにちょっと興味を持ち、WEBページを取得してそこからデータを抽出するようなプログラムを作ろうと思っています。例えば、WEBリングの登録者一覧を取得して正規表現で整形し、WWWC用のリストに作り変えるようなものを想定しています。

手始めにとりあえず他のサイトのページ、例えばYahooをそのまま表示するようなプログラムを作ろうと思いました。

http://www.augustus.to/blog/3128/archives/000054.html
によるとどうやらLWP::Simpleなるものを使えば、簡単に他のサイトのデータを取得することが可能とのこと。早速URLにYahooを入れてみたら取得して表示することが出来ました。

しかし、Yahoo以外だと500エラーが出てしまうんですよね。LWP::UserAgentを使わないと行けないようなことまでは解ったのですが、その先がわかりません。どのようにすれば一般のサイトも取得できるようになるのか、ご存知の方はご教示お願いいたします。

コメント(3)

> Yahoo以外だと500エラーが出てしまうんですよね。

わたしが実験してる範囲ではそういうことは起こりませんでしたが、Proxy配下などとかの特殊環境ですかねえ。

> LWP::Simple だと HTTP のレスポンスヘッダが取れないとの事なので

確かに以下のように書いてあります。

You will not be able to examine the response code or response headers (like 'Content-Type') when you are accessing the web using this function. If you need that information you should use the full OO interface (see LWP::UserAgent).

が、StatusCodeについてはgetstoreメソッドで取得できます。

例)
$status_code = getstore($url,"/dev/null");
print $status_code;

headメソッドでは
$content_type, $document_length, $modified_time, $expires, $server
の5つを取得できます。
>B.B.さん、KIDDさん
アドバイスありがとうございます。
HTTPヘッダとは盲点でした。追加したら無事動きました〜。

しかしYahooは何故二重にヘッダを出してるんですかね。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

超初心者向けCGI講座 更新情報

超初心者向けCGI講座のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング

mixiチケット決済