2012-01-08 6 views
2

POSTデータを取り込んで正しいページを返すWebサイトをスクラップしようとしています(POST結果は15個の結果を返し、POSTデータはすべての結果を返します)。 POSTデータが必要なPHPを介してウェブサイトをスクラップする方法はありますか?

は、現在、私のコードは次のように探しています:

$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」で満たされた空間の中に私のpostfieldsを配置する必要があることを知っているポストフィールドを掘る場所を、私は知りません/値と、そこに渡す変数にそれらを構造化する方法を示します。

ご協力いただければ幸いです!

+0

SEOのURLを作る理由は、検索エンジンがページを取得するためにポスト/データを取得する必要があるページのインデックスを作成しないためです。あなたは正しいページを得るために価値のすべての可能な組み合わせを考える必要がありますか、または掻きながら404トンのトンを得ることができます。なぜPOSTを使用していますか?検索ページを試している場合は、代わりにGETを試してみてください。 – Joseph

答えて

2

単純なフォームの場合は、すべてのフォームフィールドを抽出してスクリプトで重複するだけです。 javascriptのような動的なフォームでリクエストを作成し、ajaxを使用する場合は、デベロッパーツール(FirefoxのFirebug Netタブ、HTTPfoxなど)を使用してデータをスニッフィングし、送信された投稿データを抽出できます。

どちらの方法でも、送信されたフィールド/データがわかったら、残りは(比較的)簡単に複製/作成する必要があります。

+0

Hazaa!いくつかの失敗した試みの後、それは働いているように見えます。ありがとう! – OldDrunkenSailor

1

誰かが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); 
+0

完全に動作します。これは受け入れられた答えでなければなりません。 –

関連する問題