卷曲得到源代码GETparams

问题描述:

我想从该页面的源代码的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卷曲得到源代码GETparams

当我去那个网址我可以访问该网站。我无法通过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/ 与[012]当您点击'搜索'时,您会看到上面的网址(blah/index/search /?params [...])很短的时间。

有帮助吗?

///////编辑:

///////答:

第一:获得饼干从一个页面(W/GET-PARAMS) 二:去的细节页面并发送cookie。

感谢@丹尼尔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); 

您是否尝试过加入:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 

$html = curl_exec($ch); 

没有第一个选项,卷曲只会输出不管它取。而对于严格的“善”,你应该从curl_exec以及检查返回值:

if ($html === false) { 
    die("Curl error: " . curl_error($ch)); 
} 
+0

谢谢你,但仍然没有成功。没有错误,我仍然可以进入'主页'页面。 – meeeeeh

尝试增加在您,下列curl代码

curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

的SSL_VERIFYER部分意味着它不要注意它是否没有SSL证书。

+0

嘿!谢谢你的回答,但是这并没有帮助:( – meeeeeh

最有可能出现这种情况是因为网页搜索表单是集饼干,所以当你发送搜索请求你应该通过对饼干有作为。搜索页面似乎也设置/更新了BAHNSESSID cookie。

+0

谢谢!这就是我想的。让我看看我是如何得到这个工作的.. curl_setopt($ ch,CURLOPT_COOKIE,“BAHNSESSID = fd12a6c3d517c702eab0014879d551ef; bla = foo “); – meeeeeh

+0

是的,你明白了! – meeeeeh