=encoding euc-jp =head1 NAME WWW::Mechanize::FAQ - WWW::Mechanizeの良くある質問と回答 =head1 "X"はどうやればできるの? =head2 「これこれをこうする」ことはWWW::Mechanizeでできる? LWP::UserAgentでも可能であれば、yesです。WWW::Mechanizeは Lのサブクラスで、したがってこのクラスから全ての すっばらしいマジックを引き継いでいます。 =head2 プロキシサーバー経由でWWW::Mechanizeを使うにはどうすれば良い? プロキシの使い方についてかかれているLのドキュメントを 読んで。簡単なのは: $mech->proxy(['http', 'ftp'], 'http://proxy.example.com:8000/'); でなければ、環境変数から指定するか: $mech->env_proxy(); # 環境変数の設定はこんな感じ: gopher_proxy=http://proxy.my.place/ wais_proxy=http://proxy.my.place/ no_proxy="localhost,my.domain" export gopher_proxy wais_proxy no_proxy =head2 全てのフォーム上のフィールドを見るにはどうすれば良い? Mechanizeといっしょにインストールされているmech-dumpユーティリティを 使おう。 $ mech-dump --forms http://search.cpan.org Dumping forms GET http://search.cpan.org/search query= mode=all (option) [*all|module|dist|author] =CPAN Search (submit) =head2 JavaScriptをWWW::Mechanizeで実行させるにはどうすればよい? できない。JavaScriptは完全にクライアントベースで、WWW::Mechanizeは JavaScriptを理解できないクライアントなんだ。 =head1 何で動かないのさ? =head2 https:// なURLだとなんで動かないの? LとLをインストールすることが必要だよ。 =head2 "Input 'fieldname' is readonly"って言われるんだけど、何で? hiddenフィールドの値を書き換えようとしているものだから、ワーニングを 受けているんだ。 まず、君が本当にそのフィールドを変更しようというつもりで変更して いるのか、それから打ち間違いなんかはしていないかを確認しよう。 たいていは、hiddenフィールドはアクセスしているサイトのほうで何かしら 理由があって設定している。もしこの値を変更してしまうと、それは偽造 みたいなことになって、何かの機能をダメにしちゃうかも知れない。 本当にhiddenの値を変更しようとしているのであれば、その範囲では ワーニングをオフに変更しよう。 { local $^W = 0; $agent->field( name => $value ); } =head2 「これこれをこう」しようとしたら、怪しげなエラーが出たんだけど? エラーはチェックした? 何か間違ってない? 各アクションごとに、そのアクションが成功したかチェックした? 本当に間違ってない? 例えば、以下を試したとする: $mech->get( "http://my.site.com" ); $mech->follow_link( "foo" ); で、Cの呼び出しが何かしらの理由でこけちゃうと、Mech内部では Cが使えなくなって、怪しげなエラーをもらうことになる。 そんな時は君はGETやPOSTでページを取得するたびに、Mechが成功したか どうかを確認B<しなきゃいけない>...してる方に賭けるってのは無しで。 $mech->get( "http://my.site.com" ); die "Can't even get the home page: ", $mech->response->status_line unless $mech->success; $mech->follow_link( "foo" ); die "Foo link failed: ", $mech->response->status_line unless $mech->success; =head1 Author Copyright 2004 Andy Lester C<< >> =cut