2012-05-11 50 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