3

POSTデータを取り込んで正しいページを返すWebサイトをスクレイピングしようとしています(POSTでは15の結果が返され、POSTデータではすべての結果が返されます)。

現在、私のコードは次のようになっています。

$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,"http://www.thisismyurl.com/awesome");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, XXXXXX);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result= curl_exec($curl);

投稿フィールドを「XXXXXX」で満たされたスペースに配置する必要があることはわかっていますが、投稿フィールド/値を掘り下げる場所と、そこに渡す変数にそれらを構造化する方法がわかりません。

どんな助けでも大歓迎です!

4

2 に答える 2

2

XXXXXX を置き換えるコードを探す人がいると思います。次のコードを使用します。

$ch = curl_init();
$timeout=5;
$name=$_REQUEST['name'];
$pass=$_REQUEST['pass'];
$data = array('username' => '$name', 'password' => '$pass');
$data=http_build_query($data);
curl_setopt($ch,CURLOPT_URL,"superawsomesite.com"); 
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
于 2012-05-20T21:19:00.050 に答える
2

単純なフォームの場合は、すべてのフォーム フィールドを抽出してスクリプトに複製します。JavaScript がリクエストを作成して ajax を使用するような動的なフォームの場合、開発者ツール (Firefox の Firebug Net タブ、HTTPfox など) を使用してデータを盗聴し、送信された投稿データを抽出できます。

いずれにせよ、どのフィールド/データが送信されているかがわかれば、残りは (比較的) 簡単に複製/構築できるはずです。

于 2012-01-08T03:32:46.290 に答える