NAME

WWW::Mechanize - Perl¥ª¥Ö¥¸¥§¥¯¥ÈÃæ¤Î¥Ï¥ó¥Ç¥£Web¥Ö¥é¥¦¥¶


VERSION

Version 1.02

    $Header: /cvsroot/www-mechanize/www-mechanize/lib/WWW/Mechanize.pm,v 1.129 2004/04/10 05:30:10 petdance Exp $


SYNOPSIS

WWW::Mechanize¡¢¤¢¤ë¤¤¤Ï½Ì¤á¤ÆMech¤ÏWeb¥µ¥¤¥È¤È¤Î¤ä¤ê¤È¤ê¤Î¼«Æ°²½¤ò ½õ¤±¤Þ¤¹¡£¤³¤ì¤Ï¥ê¥ó¥¯Àè¤ä¥Õ¥©¡¼¥à¥Ç¡¼¥¿¤ÎÁ÷¿®¤ò´Þ¤à¡¢Ê£¿ô¤Î¥Ú¡¼¥¸¤Î¼èÆÀ¤ò ¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£¼èÆÀ¤·¤¿¥Ú¡¼¥¸¤Ï¤½¤ì¤¾¤ì²òÀϤµ¤ì¡¢¤½¤Î¥ê¥ó¥¯¤ä¥Õ¥©¡¼¥à¤¬ Ãê½Ð¤µ¤ì¤Þ¤¹¡£¥ê¥ó¥¯¤ä¥Õ¥©¡¼¥à¤òÁªÂò¤·¡¢¥Õ¥©¡¼¥à¤òËä¤á¡¢¼¡¤Î¥Ú¡¼¥¸¤ò¼èÆÀ ¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£Mech¤Ïˬ¤ì¤¿URL¤ÎÍúÎò¤òÊÝ»ý¤·¤Þ¤¹¤Î¤Ç¡¢¤³¤ì¤òÌ䤤 ¤¢¤ï¤»¤¿¤êºÆË¬¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£

    use WWW::Mechanize;
    my $mech = WWW::Mechanize->new();
    $mech->get( $url );
    $mech->follow_link( n => 3 );
    $mech->follow_link( text_regex => qr/download this/i );
    $mech->follow_link( url => 'http://host.com/index.html' );
    $mech->submit_form(
        form_number => 3,
        fields      => {
            username    => 'yourname',
            password    => 'dummy',
        }
    );
    $mech->submit_form(
        form_name => 'search',
        fields    => { query  => 'pot of gold', },
        button    => 'Search Now'
    );

Mech¤ÏWeb¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥Æ¥¹¥È¤Ë¤âÎɤ¯¤¢¤¤¤Þ¤¹¡£the Test::HTML::Lint manpage ¥â¥¸¥å¡¼¥ë¤Ê¤É¡¢Test::*¤ÎÆâ¤Î°ì¤Ä¤ò»È¤¨¤Ð¡¢¼èÆÀ¤·¤¿¥³¥ó¥Æ¥ó¥Ä¤ò ¥Á¥§¥Ã¥¯¤·¡¢test¥³¡¼¥ë¤Ø¤ÎÆþÎϤ˻Ȥ¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

    use Test::More;
    like( $mech->content(), qr/$expected/, "Got expected content" );

¥Ú¡¼¥¸¼èÆÀ¤ò¹Ô¤¦Å٤ˤ½¤ÎURL¤Ï¥¹¥¿¥Ã¥¯¤ËÊÝ»ý¤µ¤ì¡¢¤³¤ì¤òÁ°¸å¤Ë°Üư ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

    $mech->back();

¥Ú¡¼¥¸¼èÆÀ¤Î²áÄø¤ò¤è¤ê¤¦¤Þ¤¯¥³¥ó¥È¥í¡¼¥ë¤·¤è¤¦¤È»×¤Ã¤¿¤é¡¢°Ê²¼¤Î ¥á¥½¥Ã¥É¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£follow_link¤Èsubmit_form¤Ï¡¢ ¤Ä¤Þ¤ë¤È¤³¤í¤³¤ì¤é¤Î¹â¥ì¥Ù¥ë¤Î¥é¥Ã¥Ñ¡¼¤Ç¤¹¡£

    $mech->follow( $link );
    $mech->find_link( n => $number );
    $mech->form_number( $number );
    $mech->form_name( $name );
    $mech->field( $name, $value );
    $mech->set_fields( %field_values );
    $mech->set_visible( @criteria );
    $mech->click( $button );

the WWW::Mechanize manpage¤Ï¤Þ¤µ¤·¤¯the LWP::UserAgent manpage¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ê¡¢ the LWP::UserAgent manpage¤Î¤É¤Î¥á¥½¥Ã¥É¤âÍøÍѲÄǽ¤Ç¤¹¡£

    $mech->add_header($name => $value);


½ÅÍפʥê¥ó¥¯


¥³¥ó¥¹¥È¥é¥¯¥¿¤È³«»Ï

new()

WWW::Mechanize¤Î¿·µ¬¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤·¡¢ÊÖ¤·¤Þ¤¹¡£ °Ê²¼¤Ç¤Ï¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò'agent'¤È¸Æ¤Ó¤Þ¤¹¡£

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

WWW::Mechanize¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤Ï¡¢LWP::UserAgent¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤Ø¤Î ¥Ñ¥é¥á¡¼¥¿¤Î¤¦¤Á2¤Ä¤ò¾å½ñ¤­¤·¤Þ¤¹¡£

    agent => "WWW-Mechanize/#.##"
    cookie_jar => {}    # an empty, memory-only HTTP::Cookies object

¥³¥ó¥¹¥È¥é¥¯¥¿¤Ë¥Ñ¥é¥á¡¼¥¿¤òÅϤ¹¤³¤È¤Ç¡¢¤³¤Î¾å½ñ¤­ÃͤòÊѹ¹¤¹¤ë¤³¤È¤¬ ¤Ç¤­¤Þ¤¹¡£°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹:

    my $mech = WWW::Mechanize->new( agent=>"wonderbot 1.01" );

cookie jar¤Ç¤Î¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤òÈò¤±¤¿¤¤»þ¤ä¡¢bot¤Ëcookie¤ò¼õ¤±Æþ¤ì ¤µ¤»¤¿¤¯¤Ê¤¤»þ¤Ï¡¢ÌÀ¼¨Åª¤Ë¤³¤ì¤ò¶Ø»ß¤·¤Þ¤¹¡£¤³¤ó¤Ê´¶¤¸¤Ç¤¹:

    my $mech = WWW::Mechanize->new( cookie_jar => undef );

°Ê²¼¤ÏWWW::Mechanize¤¬Ç§¼±¤Ç¤­¤ë¥Ñ¥é¥á¡¼¥¿¤Ç¤¹¡£ ¤³¤ì¤é¤Ïthe LWP::UserAgent manpage¤¬Ç§¼±¤¹¤ë¥Ñ¥é¥á¡¼¥¿¤Ë¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Þ¤»¤ó¡£

$mech->agent_alias( $alias )

¼ÂºÝ¤Ë¥æ¡¼¥¶¡¼¤¬ÅϤ·¤¿Ê¸»úÎ󤫤é¥Ð¡¼¥¸¥ç¥ó¤Ê¤É¤ò³ÈÄ¥¤·¤¿¤â¤Î¤òuser agent¤ËÀßÄꤷ¤Þ¤¹¡£$alias¤Ë¤Ï°Ê²¼¤Î¤¦¤Á°ì¤Ä¤ò»ÈÍѤǤ­¤Þ¤¹¡£

¤¹¤ë¤È¡¢ºÇ¤â´ØÏ¢¿¼¤¤¤â¤Î¤Î°ì¤Ä¤ËÃÖ¤­´¹¤¨¤é¤ì¤Þ¤¹¡£Î㤨¤Ð¡¢

    $mech->agent_alias( 'Windows IE 6' );

¤Ç¤ÏUser-Agent¤Ï°Ê²¼¤ËÀßÄꤵ¤ì¤Þ¤¹¡£

    Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

ŬÀÚ¤ÊÊÌ̾¤Î°ìÍ÷¤Ïknown_agent_aliases()¤«¤éÊÖ¤µ¤ì¤Þ¤¹¡£

known_agent_aliases()

Mech¤¬ÃΤäƤ¤¤ëÁ´¤Æ¤Î¥¨¡¼¥¸¥§¥ó¥È¤ÎÊÌ̾¤Î¥ê¥¹¥È¤òÊÖ¤·¤Þ¤¹¡£


¥Ú¡¼¥¸¼èÆÀ¥á¥½¥Ã¥É

$mech->get($url)

URL/URI¤òÍ¿¤¨¤é¤ì¤ë¤È¡¢¤½¤ì¤ò¼èÆÀ¤·¤Þ¤¹¡£the HTTP::Response manpage ¥ª¥Ö¥¸¥§¥¯¥È¤¬µ¢¤êÃͤǤ¹¡£$url¤ÏŬÀÚ¤ËÀ°·Á¤µ¤ì¤¿URLʸ»úÎ󤫡¢ URI¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡£

¤³¤Î·ë²Ì¤Ïagent¥ª¥Ö¥¸¥§¥¯¥È¤ËÆâÉôŪ¤ËÊÝ»ý¤µ¤ì¤Þ¤¹¤¬¡¢¤½¤ì¤òÃΤäƤ¤¤ë ɬÍפϤ¢¤ê¤Þ¤»¤ó¡£°Ê²¼¤Ë¥ê¥¹¥È¤µ¤ì¤Æ¤¤¤ë¥¢¥¯¥»¥Ã¥µ¤ò»È¤¦¤À¤±¤Ç¤¹¡£ ÆâÉô¤ÎÁ§º÷¤Ï¤·¤Ê¤¤¤è¤¦¤Ëµ§¤ê¤Þ¤¹¤·¡¢¥µ¥Ö¥¸¥§¥¯¥È¤Ï¾­ÍèÊѹ¹¤µ¤ì¤Þ¤¹¡£

get()¤Ïthe LWP::UserAgent manpage¤Î¥á¥½¥Ã¥É¤ò¤è¤ê¤è¤¤¿¶¤ëÉñ¤¤¤ò¤¹¤ë¤è¤¦¤Ë ¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤¿¥Ð¡¼¥¸¥ç¥ó¤Ç¤¹¡£¤³¤ì¤Ï

    $mech->get( $url, ":content_file"=>$tempfile );

¤Î¤è¤¦¤Ê¤³¤È¤ò²Äǽ¤Ë¤·¤Þ¤¹¤·¡¢¤³¤Î¥Ñ¥é¥á¡¼¥¿¤¬Å¬Åö¤Ë¥Õ¥£¥ë¥¿¤µ¤ì¤Æ ¼èÆÀ¤µ¤ì¤ë¤³¤È¤È¤ß¤Ê¤·¤Æ¹½¤¤¤Þ¤»¤ó¡£

$mech->reload()

¥Ö¥é¥¦¥¶¤Î¥ê¥í¡¼¥É¥Ü¥¿¥ó¤Î¤è¤¦¤Ë¿¶Éñ¤¤¤Þ¤¹: ¸½ºß¤Î¥ê¥¯¥¨¥¹¥È¤ò ºÆ¼Â¹Ô¤·¤Þ¤¹¡£

¥ê¥í¡¼¥É¤Ë¤è¤ëthe HTTP::Response manpage¥ª¥Ö¥¸¥§¥¯¥È¤«¡¢¤Þ¤À¥ê¥¯¥¨¥¹¥È¤¬¼Â¹Ô ¤µ¤ì¤Æ¤¤¤Ê¤¤»þ¤Ï¸½ºß¤Î¥ê¥¯¥¨¥¹¥È¤¬¤Ê¤¤»þ¤Ë¤Ïundef¤òÊÖ¤·¤Þ¤¹¡£

$mech->back()

¥Ö¥é¥¦¥¶¤Î``back''¥Ü¥¿¥ó¤ò᤯¤Î¤ÈÅù²Á¤Ç¤¹¡£Á°¤Î¥Ú¡¼¥¸¤ËÌá¤ê¤Þ¤¹¡£ ²áµî¤ÎºÇ½é¤Î¥Ú¡¼¥¸¤ËÌá¤ê¤¿¤¯¤Ï¤¢¤ê¤Þ¤»¤ó¤«¡©¡Ê¼ÂºÝ¡¢¤½¤ì¤¬²Äǽ¤À¤È ¤·¤¿¤é¤½¤¦¤¹¤ë¤Ç¤·¤ç¤¦¡©¡Ë


¥ê¥ó¥¯ÄÉÀץ᥽¥Ã¥É

$mech->follow_link(...)

¤½¤Î¥Ú¡¼¥¸¤Î»ØÄꤵ¤ì¤¿¥ê¥ó¥¯¤ò¤¿¤É¤ê¤Þ¤¹¡£find_link()¤Ç»È¤¦¤Î¤È Ʊ¤¸¥Ñ¥é¥á¡¼¥¿¤ò»È¤¤¡¢¤½¤ì¤Ë¥Þ¥Ã¥Á¤¹¤ë¤â¤Î¤ò»ØÄꤷ¤Þ¤¹¡£

°Ê²¼¤¬¤½¤ÎÎã¤Ç¤¹:

¥ê¥ó¥¯¤¬¸«¤Ä¤«¤ì¤Ð¡¢GET¥á¥½¥Ã¥É¤Î¼Â¹Ô·ë²Ì¡ÊHTTP::Response ¥ª¥Ö¥¸¥§¥¯¥È¡Ë¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£¥Ú¡¼¥¸Æâ¤Ë¥ê¥ó¥¯¤¬¤Ê¤¤¤«¡¢¤Þ¤¿¤Ï»ØÄꤵ¤ì¤¿ ¥ê¥ó¥¯¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿»þ¤Ï¡¢undef¤òÊÖ¤·¤Þ¤¹¡£

¤³¤Î¥á¥½¥Ã¥É¤Ï¡¢¾­Íè¤Î³«È¯¤Ç¤Ï»ÈÍѤµ¤ì¤Ê¤¤$mech->follow()¤ÎÃÖ¤­ ´¹¤¨¤Ë¤¢¤¿¤ê¤Þ¤¹¡£


¥Õ¥©¡¼¥à¥Õ¥£¡¼¥ë¥ÉÆþÎϥ᥽¥Ã¥É

$mech->form_number($number)

¥Ú¡¼¥¸Ãæ¤ÎnumberÈÖÌܤΥե©¡¼¥à¤òÉû¼ê½ç¤Çfield()¤ä click()¤Ç¸Æ¤Ó½Ð¤¹ºÝ¤Î¥¿¡¼¥²¥Ã¥È¤È¤·¤ÆÁªÂò¤·¤Þ¤¹¡£ÊÖ¤êÃͤâÁªÂò ¤µ¤ì¤¿¥Õ¥©¡¼¥à¤Ç¤¹¡£ÁªÂò¤µ¤ì¤¿¤â¤Î¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢¥ï¡¼¥Ë¥ó¥°¤ò ½Ð¤·¡¢undef¤òÊÖ¤·¤Þ¤¹¡£¥Õ¥©¡¼¥à¤Ï1ÈÖ¤«¤é¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬ÉÕ¤±¤é¤ì¤ë¤Î¤Ç ºÇ½é¤Î¥Õ¥©¡¼¥à¤Ï0¤Ç¤Ï¤Ê¤¯¡¢1¤Ç¤¹¡£

$mech->form_name($name)

¥Õ¥©¡¼¥à¤ò̾Á°¤ÇÁªÂò¤·¤Þ¤¹¡£¥Ú¡¼¥¸¾å¤Ë¤½¤Î̾Á°¤Î¥Õ¥©¡¼¥à¤¬Ê£¿ô¤¢¤ë »þ¤Ï¡¢¤½¤Î¤¦¤ÁºÇ½é¤Î¤â¤Î¤¬ÁªÂò¤µ¤ì¡¢¥ï¡¼¥Ë¥ó¥°¤¬À¸À®¤µ¤ì¤Þ¤¹¡£ Ä̾ï¤Ï¥Õ¥©¡¼¥à¤½¤ì¼«ÂΤò¡¢¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿»þ¤Ë¤Ïundef¤òÊÖ¤·¤Þ¤¹¡£

¤³¤Îµ¡Ç½¤Ïlibwww-perl 5.69°Ê¹ß¤òɬÍפȤ·¤Þ¤¹¤Î¤Ç¤´Ãí°Õ¤¯¤À¤µ¤¤¡£

$mech->field( $name, $value, $number )

$mech->field( $name, \@values, $number )

¥Õ¥£¡¼¥ë¥É̾¤ò¼õ¤±¼è¤ê¡¢»ØÄꤵ¤ì¤¿Ãͤò¤½¤³¤Ë¥»¥Ã¥È¤·¤Þ¤¹¡£¤³¤ì¤Ï ¸½ºß¤Î¥Õ¥©¡¼¥à¡Êform()¤ÇÀßÄꤵ¤ì¤¿¤â¤Î¤«¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë ¥Ú¡¼¥¸Æâ¤ÎºÇ½é¤Î¥Õ¥©¡¼¥à¡Ë¤ËŬÍѤµ¤ì¤Þ¤¹¡£

¥ª¥×¥·¥ç¥ó¤Î$number¥Ñ¥é¥á¡¼¥¿¤Ï¡¢2¤Ä°Ê¾å¤ÎƱ¤¸Ì¾Á°¤Î¥Õ¥£¡¼¥ë¥É¤¬ ¤¢¤ë»þ¤Ë¡¢¤½¤ì¤é¤ò¶èÊ̤¹¤ë¤Î¤Ë»È¤ï¤ì¤Þ¤¹¡£¥Õ¥£¡¼¥ë¥É¤Ï1¤«¤éÈֹ椬 ¤Õ¤é¤ì¤Þ¤¹¡£

$mech->set_fields( $name => $value ... )

¤³¤Î¥á¥½¥Ã¥É¤Ï¥Õ¥©¡¼¥à¤ÎÊ£¿ô¤Î¥Õ¥£¡¼¥ë¥É¤òÀßÄꤷ¤Þ¤¹¡£¤³¤ì¤Ï¥Õ¥£¡¼¥ë¥É ̾¤ÈÃͤΥڥ¢¤Î¥ê¥¹¥È¤ò°ú¿ô¤Ë¼è¤ê¤Þ¤¹¡£¤â¤·Æ±¤¸Ì¾Á°¤Î¥Õ¥£¡¼¥ë¥É¤¬Ê£¿ô ¤¢¤ì¤Ð¡¢¤½¤Î¤¦¤ÁºÇ½é¤Ë¸«¤Ä¤«¤Ã¤¿¤â¤Î¤ËÃͤ¬¥»¥Ã¥È¤µ¤ì¤Þ¤¹¡£¤³¤ÎÊ£À½ ¤µ¤ì¤¿¥Õ¥£¡¼¥ë¥É¤Î¤¤¤º¤ì¤«¤òÁªÂò¤·¤¿¤¤¤È¤­¤Ï¡¢ÃͤȤ·¤Æ¡¢ÃͤÈÈÖ¹æ¤Î 2¤Ä¤ÎÍ×ÁǤò¤â¤Ä̵̾ÇÛÎó¤ò»ÈÍѤ·¤Þ¤¹¡£

        # set the second foo field
        $mech->set_fields( $name => [ 'foo', 2 ] ) ;

¥Õ¥£¡¼¥ë¥É¤Ï1¤«¤éÈֹ椬¤Õ¤é¤ì¤Þ¤¹¡£

¤³¤ì¤Ï¸½ºß¤Î¥Õ¥©¡¼¥à¡Êform()¤ÇÀßÄꤵ¤ì¤¿¤â¤Î¤«¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë ¥Ú¡¼¥¸Æâ¤ÎºÇ½é¤Î¥Õ¥©¡¼¥à¡Ë¤ËŬÍѤµ¤ì¤Þ¤¹¡£

$mech->set_visible( @criteria )

¤³¤Î¥á¥½¥Ã¥É¤Ï¥Õ¥©¡¼¥à¥Õ¥£¡¼¥ë¥É¤ò¡¢¤½¤Î¥Õ¥£¡¼¥ë¥É̾¤òÃΤëɬÍפʤ¯ ¥»¥Ã¥È¤·¤Þ¤¹¡£¤·¤¿¤¬¤Ã¤Æ¡¢¤â¤·¥æ¡¼¥¶¡¼Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤òÍ׵᤹¤ë¥í¥°¥¤¥ó ²èÌ̤¬¤¢¤ë¤Ê¤é¡¢¤½¤Î¥Õ¥£¡¼¥ë¥É̾¤òÃΤ뤿¤á¤Ë¥Õ¥©¡¼¥à¤ò¼èÆÀ¤·¤Æ¥½¡¼¥¹ ¤«¤éÄ´ºº¤¹¤ë¡Ê¤¢¤ë¤¤¤ÏWWW::Mechanize¤È¤¤¤Ã¤·¤ç¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë mech-dump¤ò»È¤¦¡ËɬÍפϤ¢¤ê¤Þ¤»¤ó; ¤³¤¦Ì¿¤¸¤ë¤À¤±¤Ç

    $mech->set_visible( $username, $password ) ;

¤³¤ì¤Ë¤·¤¿¤¬¤Ã¤Æ¡¢1ÈÖÌܤÈ2ÈÖÌܤΥե£¡¼¥ë¥É¤¬¥»¥Ã¥È¤µ¤ì¤Þ¤¹¡£¤³¤Î ¥á¥½¥Ã¥É¤Ï¡¢²Ä»ë¡Êvisible¡Ë¥Õ¥£¡¼¥ë¥É¤Î¤ß¤ËƯ¤¯¤Î¤Ç¡¢set_visible¤È ¸Æ¤Ð¤ì¤Þ¤¹; ÉԲĻë¡Êhidden¡Ë¤Î¥Õ¥©¡¼¥à¥¤¥ó¥×¥Ã¥È¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£ ¥Õ¥£¡¼¥ë¥É¤Î½çÈÖ¤ÏHTML¥½¡¼¥¹Ãæ¤Ë½Ð¤Æ¤¯¤ë½çÈÖ¤ÈÆ±¤¸¤Ç¡¢Â¿¤¯¤Î¾ì¹ç¤Ï ¥Ú¡¼¥¸¾å¤Ç¸«¤¨¤ë½çÈÖ¤ÈÆ±¤¸¤Ç¤¹¤¬¡¢¥Æ¡¼¥Ö¥ë¤ò»È¤Ã¤¿¥¯¥ê¥¨¥¤¥Æ¥£¥Ö¤Ê ¥Ç¥¶¥¤¥ó¤Ç¤Ï°Û¤Ê¤ë¤³¤È¤¬¤¢¤ë¤³¤È¤Ï·Ù¹ð¤·¤Æ¤ª¤­¤Þ¤¹¡£

@criteria¤Î¸Ä¡¹¤ÎÍ×ÁǤϥե£¡¼¥ë¥ÉÃͤޤ¿¤Ï¥Õ¥£¡¼¥ë¥É»ØÄêÃͤǤ¹¡£ ¥Õ¥£¡¼¥ë¥ÉÃͤϥ¹¥«¥é¤Ç¤¹¡£¥Õ¥£¡¼¥ë¥É»ØÄêÃͤǤÏÃͤò¥»¥Ã¥È¤·¤¿¤¤ ¥Õ¥£¡¼¥ë¥É¤Î¥¿¥¤¥×¤ò»ØÄê¤Ç¤­¡¢Æó¤Ä¤ÎÍ×ÁǤò¤â¤ÄÇÛÎó¥ê¥Õ¥¡¥ì¥ó¥¹¤Ç ɽ¤ï¤µ¤ì¤Þ¤¹¡£¤·¤¿¤¬¤Ã¤Æ¡¢ºÇ½é¤Î¥é¥¸¥ª¥Ü¥¿¥ó¤ò¼¡¤Î¤è¤¦¤Ë»ØÄê¤Ç¤­¤Þ¤¹

    $mech->set_visible( [ radio => "KCRW" ] ) ;

¥Õ¥£¡¼¥ë¥ÉÃͤȥե£¡¼¥ë¥É»ØÄêÃͤϺ®ºß¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¡¢¤·¤¿¤¬¤Ã¤Æ

    $mech->set_visible( "fred", "secret", [ option => "Checking" ] ) ;

¤Ï1¡¢2ÈÖÌܤΥե£¡¼¥ë¥É¤ò``fred''¤È``secret''¤Ë¡¢¤½¤·¤Æ¼¡¤ÎOPTION ¥á¥Ë¥å¡¼¥Õ¥£¡¼¥ë¥É¤ò``Checking''¤Ë¥»¥Ã¥È¤·¤Þ¤¹¡£

¥Õ¥£¡¼¥ë¥É»ØÄêÃͤΥ¿¥¤¥×¤Ë¤Ï°Ê²¼¤ò»ÈÍѤǤ­¤Þ¤¹: ``text''¤ä``password''¡¢ ``hidden'',``textarea''¡¢``file''¡¢``image''¡¢``submit''¡¢``radio''¡¢``checkbox''¡¢ ``option''¡£

$mech->tick( $name, $value [, $set] )

¸½ºß¤Î¥Õ¥©¡¼¥àÃæ¤Î¡¢¤½¤Î̾Á°¤ÈÃͤò»ý¤ÄºÇ½é¤Î¥Á¥§¥Ã¥¯¥Ü¥Ã¥¯¥¹¤Ë '°õ¤ò ÉÕ¤±(Ticks)' ¤Þ¤¹¡£¤½¤ÎÃͤò»ý¤Ä̾Á°·î¤Î¥Á¥§¥Ã¥¯¥Ü¥Ã¥¯¥¹¤¬¤Ê¤¤»þ¤Ï die¤·¤Þ¤¹¡£¥ª¥×¥·¥ç¥ó¤Î»°ÈÖÌܤΰú¿ô¤ÇFalse¤ÎÃͤòÅϤ¹¤È¡¢¥Á¥§¥Ã¥¯ ¥Ü¥Ã¥¯¥¹¤Ï°õ¤¬¤Ï¤º¤µ¤ì¤Þ¤¹¡£

$mech->untick($name, $value)

¥Á¥§¥Ã¥¯¥Ü¥Ã¥¯¥¹¤Î°õ¤ò¤Ï¤º¤·¤Þ¤¹¡£tick($name,$value,undef)¤Îû¤¤ ½ñ¤­Êý¤Ç¤¹¡£


¥Õ¥©¡¼¥àÁ÷¿®¥á¥½¥Ã¥É

$mech->click( $button [, $x, $y] )

¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¸ú²Ì¤ò»ý¤Á¤Þ¤¹¡£ºÇ½é¤Î°ú¿ô¤Ï¡¢¥¯¥ê¥Ã¥¯¤¹¤ë¥Ü¥¿¥ó¤Î ̾Á°¤Ç¤¹¡£2ÈÖÌܤÈ3ÈÖÌܤΡʥª¥×¥·¥ç¥ó¤Î¡Ë°ú¿ô¤Ç¤Ï¥¯¥ê¥Ã¥¯¤¹¤ë(x,y) ºÂɸ¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£

¥Õ¥©¡¼¥à¾å¤Ë¥Ü¥¿¥ó¤¬°ì¤Ä¤·¤«¤Ê¤±¤ì¤Ð¡¢°ú¿ô¤Ê¤·¤Ç$mech->click()¤È ¤¹¤ë¤À¤±¤Ç¡¢¤½¤Î¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤¿¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

the HTTP::Response manpage¥ª¥Ö¥¸¥§¥¯¥È¤òÊÖ¤·¤Þ¤¹¡£

$mech->click_button( ... )

¥Õ¥©¡¼¥à¾å¤Î̾Á°¡¢ÃÍ¡¢¤Þ¤¿¤Ï¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç»ØÄꤵ¤ì¤¿¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯ ¤¹¤ë¸ú²Ì¤ò¤â¤Á¤Þ¤¹¡£°ú¿ô¤Ï¥­¡¼¤ÈÃͤΥڥ¢¤Ç¤¹¡£°ì¤Ä¤Î̾Á°¡¢Èֹ桢¤Þ¤¿¤Ï ÃͤÀ¤±¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£

TODO: ¤³¤Î´Ø¿ô¤Ï¥Æ¥¹¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£

$mech->select($name, $value)

$mech->select($name, \@values)

select¥Õ¥£¡¼¥ë¥É̾¤òÍ¿¤¨¤ë¤È¡¢¤½¤ÎÃͤò»ØÄꤵ¤ì¤¿Ãͤ˥»¥Ã¥È¤·¤Þ¤¹¡£ ¥Õ¥£¡¼¥ë¥É¤¬<Ê£¿ôÁªÂò>¤Ç¤Ï¤Ê¤¯¡¢$value¤¬ÇÛÎó¤Î»þ¤Ï¡¢¤½¤Î ºÇ¸å¤ÎÃͤ¬¥»¥Ã¥È¤µ¤ì¤Þ¤¹¡£¤³¤ì¤Ï¸½ºß¤Î¥Õ¥©¡¼¥à¡Êform()¥á¥½¥Ã¥É¤Ç ¥»¥Ã¥È¤µ¤ì¤¿¤â¤Î¤«¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥Ú¡¼¥¸¤ÎºÇ½é¤Î¥Õ¥©¡¼¥à¡Ë¤ËŬÍѤµ¤ì ¤Þ¤¹¡£

$mech->submit()

¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Ê¤¤¤Þ¤Þ¡¢¤½¤Î¥Ú¡¼¥¸¤òsubmit¤·¤Þ¤¹¡£¼ÂºÝ¤Ë¤Ï¡¢¤É¤Î ¥Ü¥¿¥ó¤â¥¯¥ê¥Ã¥¯¤µ¤ì¤Ê¤«¤Ã¤¿¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

¤³¤ì¤Ï$mech->click("submit")¤ÎÊÌ̾¤È¤·¤Æ»ÈÍѤµ¤ì¤Æ¤­¤Þ¤·¤¿¤¬¡¢ º£¸å¡¢¤¤¤º¤ì¤«¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ê¤¯¤Ê¤ë¤Ç¤·¤ç¤¦¡£

$mech->submit_form( ... )

¤³¤Î¥á¥½¥Ã¥É¤Ï¡¢Ä¾Á°¤Ë¼èÆÀ¤·¤¿¥Ú¡¼¥¸¤Î¥Õ¥©¡¼¥à¤òÁªÂò¤·¡¢¥Õ¥£¡¼¥ë¥É¤ò Ëä¤á¡¢¤½¤ì¤òsubmit¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¹¡£¤³¤ì¤Ïform_number/form_name¡¢ set_fields¡¢click¥á¥½¥Ã¥É¤ò°ì¤Ä¤Î¹â¥ì¥Ù¥ë¤Î¸Æ¤Ó½Ð¤·¤Ë·ë¹ç¤·¤¿¤â¤Î¤Ç¤¹¡£ ¤³¤ì¤Î°ú¿ô¤Ïkey/value¤ÎÁȤ߹ç¤ï¤»¤Î¥ê¥¹¥È¤Ç¡¢¤½¤Î¤¤¤º¤ì¤â¥ª¥×¥·¥ç¥ó ¤Ç¤¹¡£

¥Õ¥©¡¼¥à¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Ê¤¤»þ¤Ï¡¢ºÇ½é¤Ë¸«¤Ä¤«¤Ã¤¿¥Õ¥©¡¼¥à¤¬»ÈÍÑ ¤µ¤ì¤Þ¤¹¡£

button¤¬ÅϤµ¤ì¤Ê¤«¤Ã¤¿»þ¤Ï¡¢Âå¤ï¤ê¤Ësubmit()¥á¥½¥Ã¥É¤¬»È¤ï¤ì ¤Þ¤¹¡£

the HTTP::Response manpage¥ª¥Ö¥¸¥§¥¯¥È¤òÊÖ¤·¤Þ¤¹¡£


¥¹¥Æ¡¼¥¿¥¹¥á¥½¥Ã¥É

$mech->success()

ºÇ¸å¤Î¥ê¥¯¥¨¥¹¥È¤¬À®¸ù¤·¤¿¤«Èݤ«¤òtrue(1)¤«false(0)¤ÇÊÖ¤·¤Þ¤¹¡£¤Þ¤À ¥ê¥¯¥¨¥¹¥È¤ò¼Â¹Ô¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢false¤òÊÖ¤·¤Þ¤¹¡£

¤³¤ì¤Ï$mech->res->is_success¤ò¥é¥Ã¥×¤¹¤ëÊØÍø¤Ê´Ø¿ô¤Ç¤¹¡£

$mech->uri()

¸½ºß¤ÎURI¤òÊÖ¤·¤Þ¤¹¡£

$mech->response() / $mech->res()

¸½ºß¤Î¥ì¥¹¥Ý¥ó¥¹¤òthe HTTP::Response manpage¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤ÆÊÖ¤·¤Þ¤¹¡£

$mech->response()¤Îû½Ì·Á¤Ç¤¹¡£

$mech->status()

¥ì¥¹¥Ý¥ó¥¹Ãæ¤ÎHTTP¥¹¥Æ¡¼¥¿¥¹¥³¡¼¥É¤òÊÖ¤·¤Þ¤¹¡£

$mech->ct()

¥ì¥¹¥Ý¥ó¥¹¤Î¥³¥ó¥Æ¥ó¥È¥¿¥¤¥×¤òÊÖ¤·¤Þ¤¹¡£

$mech->base()

¸½ºß¤Î¥ì¥¹¥Ý¥ó¥¹¤Î¥Ù¡¼¥¹URI¤òÊÖ¤·¤Þ¤¹¡£

$mech->content()

¥ì¥¹¥Ý¥ó¥¹¤Î¥³¥ó¥Æ¥ó¥È¤òÊÖ¤·¤Þ¤¹¡£

$mech->forms()

¥ê¥¹¥È¥³¥ó¥Æ¥­¥¹¥È¤Ç¸Æ¤Ð¤ì¤¿¤È¤­¤Ï¡¢ºÇ¸å¤Ë¼èÆÀ¤·¤¿¥Ú¡¼¥¸Æâ¤Ç¸«¤Ä¤«¤Ã¤¿ ¥Õ¥©¡¼¥à¤Î¥ê¥¹¥È¤òÊÖ¤·¤Þ¤¹¡£¥¹¥«¥é¡¼¥³¥ó¥Æ¥­¥¹¥È¤Î¤È¤­¤Ï¡¢¤³¤ì¤é¤Î ¥Õ¥©¡¼¥à¤ÎÇÛÎó¥ê¥Õ¥¡¥ì¥ó¥¹¤òÊÖ¤·¤Þ¤¹¡£¤³¤ì¤ÇÊÖ¤µ¤ì¤ë¥Õ¥©¡¼¥à¤Ï¤¤¤º¤ì¤â the HTML::Form manpage¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡£

$mech->current_form()

¸½ºß¤Î¥Õ¥©¡¼¥à¤òthe HTML::Form manpage¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤ÆÊÖ¤·¤Þ¤¹¡£»ä¤Ï form()¤¬´û¤Ë¸ºß¤·¤Æcurrent_form¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤ò½ü¤¤¤Æ¤Ï ¤³¤Á¤é¤Îform()¤ò¸Æ¤ó¤Ç¤¤¤Þ¤¹¡£

$mech->links()

¥ê¥¹¥È¥³¥ó¥Æ¥­¥¹¥È¤Ç¸Æ¤Ð¤ì¤¿¤È¤­¤Ï¡¢ºÇ¸å¤Ë¼èÆÀ¤·¤¿¥Ú¡¼¥¸Æâ¤Ç¸«¤Ä¤«¤Ã¤¿ ¥ê¥ó¥¯¤Î¥ê¥¹¥È¤òÊÖ¤·¤Þ¤¹¡£¥¹¥«¥é¡¼¥³¥ó¥Æ¥­¥¹¥È¤Î¤È¤­¤Ï¡¢¤³¤ì¤é¤Î ¥ê¥ó¥¯¤ÎÇÛÎó¥ê¥Õ¥¡¥ì¥ó¥¹¤òÊÖ¤·¤Þ¤¹¡£¤³¤ì¤ÇÊÖ¤µ¤ì¤ë¥ê¥ó¥¯¤Ï¤¤¤º¤ì¤â the WWW::Mechanize::Link manpage¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡£

$mech->is_html()

¸½ºß¤Î¥³¥ó¥Æ¥ó¥È¤¬HTML¤«Èݤ«¤òHTTP¥Ø¥Ã¥À¡¼¤ò¸µ¤ËȽÃǤ·¤Æ¡¢true¤Þ¤¿¤Ï false¤òÊÖ¤·¤Þ¤¹¡£

$mech->title()

the HTML::HeadParser manpage¤Î²òÀÏ·ë²Ì¤ò¸µ¤Ë¡¢<TITLE>¥¿¥°¤ÎÆâÍÆ¤òÊÖ¤·¤Þ¤¹¡£ ¥³¥ó¥Æ¥ó¥È¤¬HTML¤Ç¤Ï¤Ê¤¤¾ì¹ç¤Ïundef¤òÊÖ¤·¤Þ¤¹¡£


¥³¥ó¥Æ¥ó¥È¥Ï¥ó¥É¥ê¥ó¥°¥á¥½¥Ã¥É

$mech->find_link()

¤³¤Î¥á¥½¥Ã¥É¤Ï¸½ºß¼èÆÀ¤µ¤ì¤Æ¤¤¤ë¥Ú¡¼¥¸Æâ¤Î¥ê¥ó¥¯¤ò¸¡º÷¤·¤Þ¤¹¡£¤³¤ì¤Ï ¤½¤Î¥ê¥ó¥¯¤Ë¤Ä¤¤¤Æµ­½Ò¤·¤Æ¤¤¤ëthe WWW::Mechanize::Link manpage¥ª¥Ö¥¸¥§¥¯¥È¤ò ÊÖ¤·¤Þ¤¹¡£¡Ê¤­¤Ã¤ÈURL¤Îµ­½Ò¤è¤ê¡¢¤³¤Á¤é¤ËÌ¥ÎϤò³Ð¤¨¤ë¤Ç¤·¤ç¤¦¡£¡Ë ¥ê¥ó¥¯¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¤È¤­¤Ë¤Ïundef¤òÊÖ¤·¤Þ¤¹¡£

URLÉôʬ¤ò¼è¤ê½Ð¤·¡¢get()¥á¥½¥Ã¥É¤ËÅϤ¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤â¤·¤³¤ì¤ò ¤·¤¿¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢Ä¾ÀÜfollow_link()¥á¥½¥Ã¥É¤ò¸Æ¤Ö¤Î¤âÎɤ¤ ¤Ç¤·¤ç¤¦¡£¤³¤ì¤Ï¡¢¼«Æ°Åª¤Ëget()¤ò¼Â¹Ô¤·¤Þ¤¹¡£

<FRAME SRC="...">¥¿¥°¤ÏHTML¤È¤·¤Æ²òÀϤµ¤ì¡¢¥ê¥ó¥¯¤È¤·¤Æ°·¤ï¤ì ¤Þ¤¹¤Î¤Ç¡¢¤³¤Î¥á¥½¥Ã¥É¤ò»È¤¨¤ë¤³¤È¤ò³Ð¤¨¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£

°Ê²¼¤Îkey/value¤ÎÁȤ߹ç¤ï¤»¤ò°ì¤Ä¤Þ¤¿¤ÏÊ£¿ôÅϤ¹¤³¤È¤Ç¡¢¥ê¥ó¥¯¤òÁªÂò ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹:

n¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥È¤Ï1¤Ç¤¹¡£¤·¤¿¤¬¤Ã¤Æ¡¢¤â¤·°ìÀÚ ¥Ñ¥é¥á¡¼¥¿¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢¤³¤Î¥á¥½¥Ã¥É¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç ¥Ú¡¼¥¸Ãæ¤ÎºÇ½é¤Î¥ê¥ó¥¯¤ò¸¡º÷¤·¤Þ¤¹¡£

Ê£¿ô¤Î¥Æ¥­¥¹¥È¤Þ¤¿¤ÏURL¥Ñ¥é¥á¡¼¥¿¤ò»ØÄê¤Ç¤­¡¢¤³¤ì¤é¤Ï¤¹¤Ù¤Æand¾ò·ï ¤È¤·¤Æ°·¤ï¤ì¤ë¤³¤È¤ò³Ð¤¨¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£Î㤨¤Ð¡¢¥Æ¥­¥¹¥È¤¬``News''¤Ç¡¢ URL¤Ë``cnn.com''¤ò´Þ¤àºÇ½é¤Î¥ê¥ó¥¯¤òõ¤¹¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤·¤Þ¤¹:

    $mech->find_link( text => "News", url_regex => qr/cnn\.com/ );

$mech->find_link() : link format

$self->contentÃæ¤Î¥ê¥ó¥¯¤ËÂбþ¤¹¤ëthe WWW::Mechanize::Link manpage ¥ª¥Ö¥¸¥§¥¯¥È¤ò¤¹¤Ù¤Æ´Þ¤ó¤ÀÇÛÎó¥ê¥Õ¥¡¥ì¥ó¥¹¤¬ÊÖ¤êÃͤǤ¹¡£

¥ê¥ó¥¯¤Ï¡¢°Ê²¼¤«¤é¼èÆÀ¤µ¤ì¤Þ¤¹:

<A HREF=...>
<AREA HREF=...>
<FRAME SRC=...>
<IFRAME SRC=...>

$mech->find_all_links( ... )

ȽÄê´ð½à¤Ë¥Þ¥Ã¥Á¤¹¤ë¤¹¤Ù¤Æ¤Î¥ê¥ó¥¯¤òÊÖ¤·¤Þ¤¹¡£¤³¤Î¥á¥½¥Ã¥É¤Ø¤Î¥ê¥ó¥¯ ¤ÎȽÄê´ð½à¤Î»ØÄêÊýË¡¤Ï¡¢find_link()¤ÈƱ¤¸¤Ç¤¹¡£¤¹¤Ù¤Æ¤Î¥ê¥ó¥¯¤Ï the WWW::Mechanize::Link manpage¤È¤·¤ÆÊÖ¤µ¤ì¤Þ¤¹¡£

¥ê¥¹¥È¥³¥ó¥Æ¥­¥¹¥È¤Ç¤Ï¡¢find_all_links()¤Ï¥ê¥ó¥¯¤Î¥ê¥¹¥È¤òÊÖ¤·¤Þ¤¹¡£ ¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¡¢¥ê¥ó¥¯¤Î¥ê¥¹¥È¤Ø¤Î¥ê¥Õ¥¡¥ì¥ó¥¹¤òÊÖ¤·¤Þ¤¹¡£

find_all_links()¤ò¥Ñ¥é¥á¡¼¥¿¤Ê¤·¤Ç¸Æ¤Ö¤È¡¢¥Ú¡¼¥¸Ãæ¤Î¤¹¤Ù¤Æ¤Î ¥ê¥ó¥¯¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£


¤½¤Î¾¤Î¥á¥½¥Ã¥É

$mech->add_header( name => $value [, name => $value... ] )

¥¨¡¼¥¸¥§¥ó¥È¤ËHTTP¥ê¥¯¥¨¥¹¥È»þ¤ËÄɲäޤ¿¤Ïºï½ü¤¹¤ëhttp¥Ø¥Ã¥À¡¼¤òÀßÄꤷ ¤Þ¤¹¡£

    $mech->add_header( Encoding => 'text/klingon' );

¤â¤·value¤¬undef¤Ç¤¢¤ì¤Ð¡¢¤½¤Î¥Ø¥Ã¥À¡¼¤Ï°Ê¹ß¤Î¥ê¥¯¥¨¥¹¥È¤Ç¤Ïºï½ü ¤µ¤ì¤Þ¤¹¡£Î㤨¤Ð¡¢Referer¥Ø¥Ã¥À¡¼¤ò¤â¤¦Á÷¤é¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï:

    $mech->add_header( Referer => undef );

¤â¤·¥Ø¥Ã¥À¡¼¤òºï½ü¤·¤¿¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢delete_header¤ò»È¤¤¤Þ¤¹¡£

Äɲ䵤줿̾Á°/ÃͤÎÁȤ߹ç¤ï¤»¤Î¸Ä¿ô¤òÊÖ¤·¤Þ¤¹¡£

NOTE: ¤³¤Î¥á¥½¥Ã¥É¤Ï1.00°ÊÁ°¤ÎWWW::Mechanize¤È¤Ï°Û¤Ê¤ê¤Þ¤¹¡£ °ÊÁ°¤Ï¡¢¥Ø¥Ã¥À¡¼¤Ï¥ª¥Ö¥¸¥§¥¯¥È¥¤¥ó¥¹¥¿¥ó¥¹¤Î¥á¥ó¥Ð¡¼¤Ç¤Ï¤Ê¤¯¡¢¥Ñ¥Ã¥±¡¼ ¥¸¤Î¥Ï¥Ã¥·¥å¤ËÊÝ»ý¤µ¤ì¤Þ¤·¤¿¡£add_header()¤Î¸Æ½Ð¤·¤Ï¡¢²¾¤Ë¤½¤Î¥ª¥Ö ¥¸¥§¥¯¥È¤¬¤¹¤°¤Ë¤Ê¤¯¤Ê¤ë¾ì¹ç¤Ç¤â¡¢Á´¤Æ¤ÎWWW::Mechanize¥ª¥Ö¥¸¥§¥¯¥È¤Î ¥Ø¥Ã¥À¡¼¤òÊѹ¹¤·¤Þ¤·¤¿¡£

$mech->delete_header( name [, name ... ] )

Removes HTTP headers from the agent's list of special headers. For instance, you might need to do something like:

    # Don't send a Referer for this URL
    $mech->add_header( Referer => undef );
    # Get the URL
    $mech->get( $url );
    # Back to the default behavior
    $mech->delete_header( 'Referer' );

$mech->quiet(true/false)

²èÌ̤ؤΥ¥Ë¥ó¥°¤òÍÞÀ©¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

    $mech->quiet(0); # ¥ï¡¼¥Ë¥ó¥°¤òÍ­¸ú¤Ë¤·¤Þ¤¹ (¥Ç¥Õ¥©¥ë¥È)
    $mech->quiet(1); # ¥ï¡¼¥Ë¥ó¥°¤ò̵¸ú¤Ë¤·¤Þ¤¹
    $mech->quiet();  # ¸½ºß¤ÎquietÀßÄê¾õÂÖ¤òÊÖ¤·¤Þ¤¹


LWP::UserAgent¥á¥½¥Ã¥É¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É

$mech->redirect_ok()

the LWP::UserAgent manpage¤Îredirect_ok()¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤¿¥Ð¡¼¥¸¥ç¥ó¤Ç¤¹¡£ ¤³¤Î¥á¥½¥Ã¥É¤Ï¥ê¥À¥¤¥ì¥¯¥·¥ç¥ó¤òÄÉÀפ¹¤Ù¤­¤«Èݤ«¤òȽÄꤹ¤ë¤¿¤á¤Ë »È¤ï¤ì¤Þ¤¹¡£

$mech->request( $request [, $arg [, $size]])

the LWP::UserAgent manpage¤Îrequest()¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤¿¥Ð¡¼¥¸¥ç¥ó¤Ç¤¹¡£ ¸½ºß¤Î¥ê¥¯¥¨¥¹¥È¤ò¼Â¹Ô¤·¤Þ¤¹¡£Ä̾ï¤Ï¡¢WWW::Mechanize¤ò»È¤Ã¤Æ¤¤¤ì¤Ð¡¢ ¤³¤Î¤è¤¦¤Ê¥ì¥Ù¥ë¤Çºî¶È¤·ÍͤȤϤޤ俤¯»×¤ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¤é¡¢¤³¤¦ ¤¹¤Ù¤­¤Ç¤·¤ç¤¦

$request¤¬½¤Àµ¤µ¤ì¤Æ¤¤¤ë¤³¤È¤Ï³Ð¤¨¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£

the HTTP::Response manpage¥ª¥Ö¥¸¥§¥¯¥È¤òÊÖ¤·¤Þ¤¹¡£

$mech->update_html( $html )

mech¤¬¸«¤Ä¤±¤¿HTML¤òÃÖ¤­´¹¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¥ê¥ó¥¯¤ä¥Õ¥©¡¼¥à¤ò¹¹¿· ¤·¤Þ¤¹¡£

¤â¤·ÉԳ湥¤Ê½ÐÎϤò¤µ¤ì¤¿¥Ú¡¼¥¸¤ò»ý¤Ã¤Æ¤ª¤ê¡¢¹¹¿·¤¹¤ëµ¤¤¬¤¢¤ë¤È¤¤¤¦¤Î¤Ç ¤¢¤ì¤Ð¥ê¥ó¥¯¤ÏÀµ¤·¤¤·Á¤Ç½Ð¤Æ¤¯¤ë¤Ç¤·¤ç¤¦:

    my $html = $mech->content;
    $html =~ s[</option>.?.?.?</td>][</option></select></td>]isg;
    $mech->update_html( $html );

$mech->_parse_html()

HTML¥É¥­¥å¥á¥ó¥È¤«¤éÆÀ¤é¤ì¤ë¥Õ¥©¡¼¥à¤È¥ê¥ó¥¯¤ò½é´ü²½¤¹¤ëÆâÉô¥á¥½¥Ã¥É ¤Ç¤¹¡£¤â¤·¥µ¥Ö¥¯¥é¥¹¤Ç¤³¤ì¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤¿¤ê¡¢Ê£¿ô²ó¤³¤ì¤ò¸Æ¤Ó½Ð¤· ¤¿¤¯¤Ê¤Ã¤¿¤é¡¢¤É¤¦¤¾¤½¤¦¤·¤Æ¤¯¤À¤µ¤¤¡£

$mech->_modify_request( $req )

¤º¤¿¤º¤¿¤ËÀÚ¤êÎö¤«¤ì¤¿ÆâÉô¥Ø¥Ã¥À¤Ë¤è¤Ã¤Æ¥ê¥¯¥¨¥¹¥È¤òÊÔ½¸¤·¤Þ¤¹¡£

$mech->_make_request()

the WWW::Mechanize::Cached manpage¤Î¤è¤¦¤Ë¡¢¥µ¥Ö¥¯¥é¥¹¤Ç¥ê¥¯¥¨¥¹¥È¤òÃæÃǤµ¤»¤ë ¤Î¤ËÊØÍø¤Ê¥á¥½¥Ã¥É¤Ç¤¹¡£


»ÈÍѤ¬¿ä¾©¤µ¤ì¤Ê¤¤¥á¥½¥Ã¥É

¤³¤Î¥á¥½¥Ã¥É¤Ï¤è¤êÀµ¤·¤¯½ÀÆð¤Ê¥á¥½¥Ã¥É¤ÇÃÖ¤­´¹¤¨¤é¤ì¤Æ¤¤¤Þ¤¹¡£¤½¤Á¤é Âå¤ï¤ê¤Ë¤ª»È¤¤¤¯¤À¤µ¤¤¡£

$mech->follow($string|$num)

Èó¿ä¾©¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢¤è¤ê½ÀÆð¤Êfollow_link()¤ò»È¤¦¤³¤È¤¬ ´«¤á¤é¤ì¤Þ¤¹¡£

¥ê¥ó¥¯¤òÄÉÀפ·¤Þ¤¹¡£Ê¸»úÎó¤òÍ¿¤¨¤ì¤Ð¡¢¤½¤Î¥Æ¥­¥¹¥È¤¬¤³¤Îʸ»úÎó¤Ë¥Þ¥Ã¥Á ¤¹¤ëºÇ½é¤Î¥ê¥ó¥¯¤¬ÄÉÀפµ¤ì¤Þ¤¹¡£ÈÖ¹æ¤òÍ¿¤¨¤ì¤Ð¡¢¥Ú¡¼¥¸Ãæ¤Î $numÈÖÌܤΥê¥ó¥¯¤Ë¤Ê¤ê¤Þ¤¹¡£¥ê¥ó¥¯¤Ï0¤«¤é»Ï¤Þ¤ë¤³¤È¤ËÃí°Õ¤·¤Æ ¤¯¤À¤µ¤¤¡£

¥Ú¡¼¥¸Ãæ¤Ë¥ê¥ó¥¯¤¬¸«¤Ä¤«¤ì¤Ðtrue¤ò¡¢¤½¤¦¤Ç¤Ê¤±¤ì¤Ðundef¤òÊÖ¤·¤Þ¤¹¡£

$mech->form($number|$name)

Èó¿ä¾©¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢form_name()¤Þ¤¿¤Ïform_number()¤ò »È¤¦¤³¤È¤¬´«¤á¤é¤ì¤Þ¤¹¡£

ÅϤµ¤ì¤¿¤Î¤¬¿ô»ú¤À¤±¤Îʸ»úÎó¤«Èݤ«¤Ë¤è¤Ã¤Æ¡¢¥Õ¥©¡¼¥à¤òÈÖ¹æ¤Þ¤¿¤Ï̾Á°¤Ç ÁªÂò¤·¤Þ¤¹¡£¤³¤ì¤Ï¡¢¤â¤·¿ô»ú¤À¤±¤Î̾Á°¤ò¤â¤Ä¥Õ¥©¡¼¥à¤¬¤¢¤Ã¤¿¾ì¹ç¤Ë¡¢ ¤³¤Î¥á¥½¥Ã¥É¤ÏÀµ¤·¤¯Æ°¤«¤Ê¤¤¤«¤âÃΤì¤Ê¤¤¤³¤È¤ò°ÕÌ£¤·¤Æ¤¤¤Þ¤¹¡£


ÆâÉô»ÈÍѸÂÄê¤Î¥á¥½¥Ã¥É

¤³¤ì¤é¤Î¥á¥½¥Ã¥É¤ÏÆâÉô¤Ç¤Î¤ß»È¤ï¤ì¤Þ¤¹¡£¤³¤ì¤é¤Ë¤Ä¤¤¤ÆÃΤëɬÍפÏ¿ʬ ¤Ê¤¤¤Ç¤·¤ç¤¦¡£

$mech->_reset_page()

¥Ú¡¼¥¸¤ò²òÀϤ·¤¿ºÝ¤Î¥¬¥é¥¯¥¿¤Î¤è¤¦¤ÊÆâÉô¥Õ¥£¡¼¥ë¥É¤ò¥ê¥»¥Ã¥È¤·¤Þ¤¹¡£

$mech->_extract_links()

Web¥Ú¡¼¥¸¤Îº£¥Æ¥ó¥È¤«¤é¥ê¥ó¥¯¤òÃê½Ð¤¹¤ë¤â¤Î¤Ç¡¢the WWW::Mechanize::Link manpage ¤Î{links}¥×¥í¥Ñ¥Æ¥£¤ò°ìÈ̲½¤·¤Þ¤¹¡£

$mech->_push_page_stack() / $mech->_pop_page_stack()

¥¨¡¼¥¸¥§¥ó¥È¤Ïˬ¤ì¤¿¥Ú¡¼¥¸¤ò¥¹¥¿¥Ã¥¯¤·¤Æ¤ª¤ê¡¢BACK¤ÎºÝ¤Ê¤ÉɬÍפˤʤä¿ »þ¤Ë¤Ï¤³¤ì¤Ç¼è¤ê½Ð¤·¤Þ¤¹¡£

¸½ºß¤Î¥Ú¡¼¥¸¤Ï¿·¤·¤¤¥Ú¡¼¥¸¤ò¼èÆÀ¤¹¤ëÁ°¤Ë¥¹¥¿¥Ã¥¯¤ËÄɲ䵤ì¤Ê¤±¤ì¤Ð ¤¤¤±¤Þ¤»¤ó¤·¡¢BACK¤¬È¯À¸¤·¤¿ºÝ¤Ë¤Ï¥¹¥¿¥Ã¥¯¤«¤é¼è¤ê½Ð¤µ¤ì¤Ê¤±¤ì¤Ð ¤¤¤±¤Þ¤»¤ó¡£

¤É¤Á¤é¤â°ú¿ô¤òÍ¿¤¨¤é¤ì¤Æ¤â¡¢$mech¥ª¥Ö¥¸¥§¥¯¥È¤òÁàºî¤·¤Þ¤¹¡£

warn( @messages )

Fatal¤Ç¤Ê¤¤ÌäÂê¤È¿ÇÃÇÍѤΤ¿¤á¤Î¡¢Ãæ¿´¤È¤Ê¤ë¥ï¡¼¥Ë¥ó¥°¥á¥½¥Ã¥É¤Ç¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ç¤ÏCORE::warn¤ò¸Æ¤Ó¤Þ¤¹¤¬¡¢¥³¥ó¥¹¥È¥é¥¯¥¿¤Çonwarn¤ò ¥»¥Ã¥È¤¹¤ë¤³¤È¤Ç¾å½ñ¤­¤Ç¤­¤Þ¤¹¡£

die( @messages )

Ãæ¿´¤È¤Ê¤ë¥¨¥é¡¼¥á¥½¥Ã¥É¤Ç¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤ÏCORE::die¤ò¸Æ¤Ó¤Þ¤¹¤¬¡¢ ¥³¥ó¥¹¥È¥é¥¯¥¿¤Çonerror¤ò¥»¥Ã¥È¤¹¤ë¤³¤È¤Ç¾å½ñ¤­¤Ç¤­¤Þ¤¹¡£


¤³¤Î¾¤Î¥É¥­¥å¥á¥ó¥È

Spidering Hacks, by Kevin Hemenway and Tara Calishain

O'Reilly(http://www.oreilly.com/catalog/spiderhks/)´©¤Î Spidering Hacks¤Ïscreen-scraping¤Èspidering¤Ë¤Ä¤¤¤Æ¤â¤Ã¤ÈÃΤꤿ¤¤ ¿Í¤Ë¤È¤Ã¤Æ¤¹¤Ð¤é¤·¤¤ËܤǤ¹¡£

¤³¤ÎËܤˤÏ6¤Ä¤ÎMech¥Ï¥Ã¥¯¤ª¤è¤ÓMech¤ÎÇÉÀ¸Êª¤¬¤¢¤ê¤Þ¤¹:

#21 WWW::Mechanize 101
#22 Scraping with WWW::Mechanize
#36 Downloading Images from Webshots
#44 Archiving Yahoo! Groups Messages with WWW::Yahoo::Groups
#64 Super Author Searching
#73 Scraping TV Listings

¤³¤ÎËܤÏSlashdot¤ÇÀѶËŪ¤Ë¥ì¥Ó¥å¡¼¤µ¤ì¤Æ¤¤¤Þ¤¹: http://books.slashdot.org/article.pl

Web¾å¤Î¥ê¥½¡¼¥¹

¤½¤Î¾¤ÎMechanize¤ò»ÈÍѤ¹¤ë¥â¥¸¥å¡¼¥ë

°Ê²¼¤ÏMechanize¤ò»ÈÍѤ·¤Æ¤¤¤ë¤«¥µ¥Ö¥¯¥é¥¹¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥â¥¸¥å¡¼¥ë¤Ç¤¹¡£ ¾¤Ë¤¢¤ì¤Ð¶µ¤¨¤Æ¤¯¤À¤µ¤¤:


Í×˾¤È¥Ð¥°

Í×˾¤ä¼¨º¶¡¢¥Ð¥°¡Ê¥ä¥Ð¥Ã¡ª¡Ë¤Ï http://rt.cpan.org/ ¤ÎRT¥Ð¥° ¥È¥é¥Ã¥­¥ó¥°¥·¥¹¥Æ¥à¤«¡¢ bug-WWW-Mechanize@rt.cpan.org ¤Ø¤Îemail¤Ç Êó¹ð¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤ì¤Ï»ä¤¬ÄÉÀפ¹¤ë¤Î¤ò´Êñ¤Ë¤·¤Æ¤¯¤ì¤Þ¤¹¡£

http://rt.cpan.org/NoAuth/Bugs.html ¤ÏMechanize ¤Ø¤ÎRT¥­¥å¡¼¤Ç¤¹¡£¤¢¤Ê¤¿¤Î¥Ð¥°¤¬´û¤ËÊó¹ð¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¸«¤ë¤Ë¤Ï¤³¤Á¤é¤ò ¥Á¥§¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤¡£


Author

Copyright 2004 Andy Lester <andy@petdance.com>

Artistic License¤Ë´ð¤Å¤­¥ê¥ê¡¼¥¹¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ Kirrily Robert¤Î¤¹¤Ð¤é¤·¤¤the WWW::Automate manpage¥Ñ¥Ã¥±¡¼¥¸¤ò¥Ù¡¼¥¹¤Ë¤·¤Þ¤·¤¿¡£