php版 WWW::Mechanizeについて
created: 2008-11-12 15:03 | modified: 2008-11-16 21:04 | reply: 2
[4252] php版 WWW::Mechanizeについて
user: やす | created: 2008-11-12 15:03
いつもお世話になっております。
今回の件に関しましては急ぎではありませんので
お時間のあるときにお返事いただければと思います。
現在はHttpClient.class.phpを使ってcgiファイルを実行し、
その結果を利用してシステムを運用しています。
cgiファイルで具体的に何をしているかというと
クッキーの値を保持してsubmitのボタンを押して次ページへ
移動してそのページのデータを取得しています。
例えば
ページAにsubmitボタンがあり、ページBへ遷移します。
ことのきページAはクッキーの値があるときはsubmitできますが
クッキーの値がない場合はゲストユーザとして扱われsubmitはできません。
当然のことながらページBはAからポストされたデータを結果として処理します。
ここで質問のなのですがpearを使えばクッキーを保持できることはわかるのですが$mech->submit()のような機能はあるのでしょうか?
formデータを直接postで目的のページへ送る方法も検討してみたのですが
なぜかうまくいきませんでした。
$mech->submit()のような機能があれば一発解決かと思っているのですが
ご存じないでしょうか?
よろしくお願いいたします。
今回の件に関しましては急ぎではありませんので
お時間のあるときにお返事いただければと思います。
現在はHttpClient.class.phpを使ってcgiファイルを実行し、
その結果を利用してシステムを運用しています。
cgiファイルで具体的に何をしているかというと
クッキーの値を保持してsubmitのボタンを押して次ページへ
移動してそのページのデータを取得しています。
例えば
ページAにsubmitボタンがあり、ページBへ遷移します。
ことのきページAはクッキーの値があるときはsubmitできますが
クッキーの値がない場合はゲストユーザとして扱われsubmitはできません。
当然のことながらページBはAからポストされたデータを結果として処理します。
ここで質問のなのですがpearを使えばクッキーを保持できることはわかるのですが$mech->submit()のような機能はあるのでしょうか?
formデータを直接postで目的のページへ送る方法も検討してみたのですが
なぜかうまくいきませんでした。
$mech->submit()のような機能があれば一発解決かと思っているのですが
ご存じないでしょうか?
よろしくお願いいたします。
[4253] WWW::Mechanize と PEAR/HTTP_Client
user: ゆうじ | created: 2008-11-12 19:16
こんばんわ。
どちらも使ったことがありませんが
向学のためちょっと調べみました。
何か勘違いしてる気もしますので
ちがってたら教えてください。
こちらのPealのサンプル見る限り
リクエストボディ(POSTのパラメータ)を添えて
POSTリクエストを送信してるようですね。
($mech->submit() はリクエストボディが無いもの?)
http://e8y.net/mag/007-www-mechanize/
もうご覧になってるかもしれませんが
ここにHTTP_Clientのサンプルがありました。
こちらも同じような流れです。
●PEAR::HTTP_Clientでサイトの内容取得
http://www.phppro.jp/phptips/archives/vol13/1
HTTP_Clientはクッキーもイケるとあるので、
あらかじめ、サーバにクッキーをセットしてもらうため
POST または GET リクエスト(1)を送信した後、
さらに(2)で $client->post(...) とすれば
$mech->submit() と同等の結果が得られるのでは無いかと考えます。
どちらも使ったことがありませんが
向学のためちょっと調べみました。
何か勘違いしてる気もしますので
ちがってたら教えてください。
こちらのPealのサンプル見る限り
リクエストボディ(POSTのパラメータ)を添えて
POSTリクエストを送信してるようですね。
($mech->submit() はリクエストボディが無いもの?)
http://e8y.net/mag/007-www-mechanize/
# トップにアクセスし、
$mech->get('http://***.jp/');
# ログイン。
$mech->submit_form(
fields => {
email => '***@***.com',
password => '****',
},
);
$mech->get('http://***.jp/home.pl');
# 足あとページに遷移
$mech->get('http://***.jp/show_log.pl');もうご覧になってるかもしれませんが
ここにHTTP_Clientのサンプルがありました。
こちらも同じような流れです。
●PEAR::HTTP_Clientでサイトの内容取得
http://www.phppro.jp/phptips/archives/vol13/1
$client =& new HTTP_Client();
// (1)サーバーに、クッキーをセットして
// もらうためPOSTリクエスト
$client->post($login_url, $login_params);
// (2)本来獲得したいページをリクエスト
$client->get($new_friend_diary_url);
// (3)レスポンス獲得
$response = $client->currentResponse(); HTTP_Clientはクッキーもイケるとあるので、
あらかじめ、サーバにクッキーをセットしてもらうため
POST または GET リクエスト(1)を送信した後、
さらに(2)で $client->post(...) とすれば
$mech->submit() と同等の結果が得られるのでは無いかと考えます。
[4254] 後日試して報告いたします。
user: やす | created: 2008-11-16 21:04
いつもありがとうございます。
後日試して結果を報告したいと思います。
お忙しい中教えていただきありがとうございます。
後日試して結果を報告したいと思います。
お忙しい中教えていただきありがとうございます。
