当我访问该网址时,我可以访问该网站。我无法通过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(带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);
答案 0 :(得分:1)
您是否尝试过添加:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$html = curl_exec($ch);
没有第一个选项,curl将只输出它所取的任何内容。对于严格的“善”,你应该检查curl_exec的返回值:
if ($html === false) {
die("Curl error: " . curl_error($ch));
}
答案 1 :(得分:0)
尝试在您的cUrl代码中添加以下内容
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
SSL_VERIFYER部分意味着如果它没有SSL证书就不会引起注意。
答案 2 :(得分:0)
最有可能发生这种情况是因为搜索表单所在的页面设置了Cookie,因此当您发送搜索请求时,您也应该在那里传递Cookie。搜索页面似乎也设置/更新了BAHNSESSID cookie。