そのページから html ソースコードを取得したい: http://bahn.ltur.com/index/search/?lang=de_DE&searchin=DE-SB-VI&trip_mode=trip_simple&from_spar=Hamburg+Dammtor&to_spar=Leipzig+Hbf&start_datum=01.07.2012&start_time= 23%3A49&end_datum=01.07.2012&end_time=23%3A51&SEA_adults=1&trainclass_spar=2
そのURLに行くとサイトにアクセスできます。curl でソースコードを取得できません。bash "curl -iL url > site.html" にも、その php スクリプトにもありません: スタートページ (bahn.ltur.com) を取得します。
GET リクエストを送信するためのコード
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,'http://bahn.ltur.com/index/search/?lang=de_DE&searchin=DE-SB-VI&trip_mode=trip_simple&from_spar=Hamburg+Dammtor&to_spar=Leipzig+Hbf&start_datum=01.07.2012&start_time=23%3A49&end_datum=01.07.2012&end_time=23%3A51&SEA_adults=1&trainclass_spar=2');
curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_exec($ch);
また、その特定のページに POST パラメータを送信しようとしましたが、うまくいきませんでした。フォームはそのページにあります: http://bahn.ltur.com/ with [...] 「検索」を押すと、上記の URL が短時間表示されます (blah/index/search/?params[... ]))。
助けはありますか?
///////編集:
///////答え:
1 つ目: ページから Cookie を取得します (GET-params を使用) 2 つ目: 詳細ページに移動して、Cookie を送信します。
ヒントをくれた@Daniel Stenbergに感謝します!彼に評判をあげてください!
/* get cookie */
$ckfile = tempnam ("/tmp", "CURLCOOKIE");
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,'http://bahn.ltur.com/index/search/?lang=de_DE&searchin=DE-SB-VI&trip_mode=trip_simple&from_spar=Hamburg+Dammtor&to_spar=Leipzig+Hbf&start_datum=01.07.2012&start_time=23%3A49&end_datum=01.07.2012&end_time=23%3A51&SEA_adults=1&trainclass_spar=2');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_COOKIEJAR, $ckfile);
$html = curl_exec($ch);
/* get page */
$ch = curl_init("http://bahn.ltur.com/details");
curl_setopt($ch, CURLOPT_COOKIEFILE, $ckfile);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
echo $html;
curl_close($ch);