2012-05-11 61 views
0

我試圖讓這個網站的內容:http://www.gratka.pl/,但我只收到此:PHP curl:無法獲取網站內容 - Cookie問題?

*關於連接()到gratka.pl端口80
*嘗試195.8.99.42 ... *連接
*連接到gratka.pl(195.8.99.42)端口80
GET/HTTP/1.1
的User-Agent:Mozilla的/ 5.0(視窗; U; Windows NT的5.1; PL; RV:1.9.1.2)壁虎/ 20090729 Firefox/3.5.2
主機:gratka.pl
接受:*/*

< HTTP/1.1 302實測值
< 緩存控制:無緩存
< 內容長度:0
< 位置:..
*連接#0到主機gratka.pl原封不動
*版本另一個請求到這個網址: 'http://blad.gratka.pl/403.html'
*關於連接()到blad.gratka.pl端口80
*嘗試195.8.99.1 ... *連接
*連接到blad.gratka.pl(195.8。 99.1)端口80
GET/403.html HTTP/1 .1
User-Agent:Mozilla/5.0(Windows; U; Windows NT 5.1; PL; RV:1.9.1.2)壁虎/ 20090729火狐/ 3.5.2
主機:blad.gratka.pl
接受:*/*
...
< HTTP/1.1 302實測值
<緩存控制:無緩存
<內容長度:0
<位置:http://blad.gratka.pl/403.html
*連接#1到主機blad.gratka.pl原封不動
*最大(20)重定向,隨後
*關閉連接#0
*期末連接#1

什麼意味着腳本,我總是用搶的內容不工作:

$ch = curl_init(); 
    $timeout = 15; 
    $cookie_file_path = 'c.txt'; 
    $fp = fopen($cookie_file_path, "w"); 
    fclose($fp); 
    $url = 'http://gratka.pl'; 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_HEADER, 1); 
    curl_setopt($ch, CURLOPT_VERBOSE, true); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2'); 
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path); 
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path); 
    $info = curl_exec($ch); 
    curl_close($ch); 

執行腳本cookie文件(c.txt)後是空的。怎麼了?也許網站需要有效的cookie,或者它可能是正確的HTTP頭文件?任何幫助將不勝感激!

編輯:當我在本地主機上執行上面的腳本時,它正在工作,但在專用服務器上執行時不起作用。任何猜測?

回答

0

我有同樣的問題,我想我的代碼中的另一個服務器上,它的工作。我想我的第一臺服務器被禁止了。 :)

我猜gratka指向http://blad.gratka.pl/403.html,當他們不想要你。

0

您的代碼是正確的。只是這行添加到curl section

$curl = curl_init(); 
    curl_setopt($curl, CURLOPT_HTTPHEADER, Array("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15")); 

    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($curl, CURLOPT_URL, $url); 
curl_setopt($curl, CURLOPT_ENCODING, "gzip"); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
$data = curl_exec($curl); 
curl_close($curl); 
return $data; 
+0

謝謝你的回答,但仍然是同樣的問題 - 這次它看起來像這樣:*關於連接()到gratka.pl端口80 *嘗試195.8.99.42 ... *連接 *連接到gratka。 PL(195.8.99.42)端口80 > GET/HTTP/1.1 主機:gratka.pl 接受:*/* 接受編碼:gzip 的User-Agent:Mozilla的/ 5.0(視窗; U; Windows NT的5.1; en-US; rv:1.8.1.15)Gecko/20080623 Firefox/2.0.0.15 – fallek