WWW-Mechanize-1.02 > WWW::Mechanize::Cookbook

名前

WWW::Mechanize::Cookbook - WWW::Mechanizeを使ったレシピ

Introduction

まず、これらの多くはLWP::UserAgentだけを使ってできることを知って おいて下さい。WWW::MechanizeLWP::UserAgentのサブクラスなので、 LWP::UserAgentの動作はおそらくWWW::Mechanizeの動作です。 libwww-perlに同梱されているlwpcookを参照してください。

Basics

mechの生成

    use WWW::Mechanize;

    my $mech = WWW::Mechanize->new( autocheck => 1 );

autocheck => 1で、Mechanizeに何らかのIOの失敗があればdieする ように告げていますので、手作業でチェックする必要はありません。こうした 方が簡単でしょう。もし自前のエラーチェックをしたければ、これを取り 去ってください。

ページの取得

    $mech->get( "http://search.cpan.org" );
    print $mech->content;

$mech->contentはWebページからの生のHTMLデータを含んでいます。 これはcontentメソッドを通しているだけで、まったく解析もハンドリング もされていません。

ページをファイルに取得

時には結果を直接ファイルにダンプしたいと思うこともあるでしょう。 例えば、直接書き出したいと思っているJPEGファイルをメモリ上に読み込む 理由はありません。こうすると大きなファイルを扱う際のメモリ使用量の面で 助かります。

    $mech->get( "http://www.cpan.org/src/stable.tar.gz",
                ":content_file" => "stable.tar.gz" );

リンク

全ての画像リンクの検索

JPEG、GIF、あるいはPNGを指す全てのリンクを検索。

    my @links = $mech->find_all_links(
        tag => "a", url_regex => qr/\.(jpe?g|gif|png)$/i );

全てのダウンロードリンクの検索

"download"という単語を含む全てのリンクを検索。

    my @links = $mech->find_all_links(
        tag = "a", text_regex => qr/\bdownload\b/i );

Author

Copyright 2004 Andy Lester <andy@petdance.com>