当我转到该网址时,我可以访问该网站。我无法通过 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/ 带有 [...] 当您点击“搜索”时,您会在短时间内看到上面的网址(blah/index/search/?params[... ])。
有什么帮助吗?
///////编辑:
///////回答:
第一个:从页面获取 cookie(w/GET-params) 第二个:转到详细信息页面并发送 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);