2012-06-27 59 views
0

我想從該頁面的源代碼的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); 

回答

1

您是否嘗試過加入:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 

$html = curl_exec($ch); 

沒有第一個選項,捲曲只會輸出不管它取。而對於嚴格的「善」,你應該從curl_exec以及檢查返回值:

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

謝謝你,但仍然沒有成功。沒有錯誤,我仍然可以進入'主頁'頁面。 – meeeeeh

0

嘗試增加在您,下列curl代碼

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

的SSL_VERIFYER部分意味着它不要注意它是否沒有SSL證書。

+0

嘿!謝謝你的回答,但是這並沒有幫助:( – meeeeeh

0

最有可能出現這種情況是因爲網頁搜索表單是集餅乾,所以當你發送搜索請求你應該通過對餅乾有作爲。搜索頁面似乎也設置/更新了BAHNSESSID cookie。

+0

謝謝!這就是我想的。讓我看看我是如何得到這個工作的.. curl_setopt($ ch,CURLOPT_COOKIE,「BAHNSESSID = fd12a6c3d517c702eab0014879d551ef; bla = foo 「); – meeeeeh

+0

是的,你明白了! – meeeeeh