我正在尝试获取此站点的内容:http://www.gratka.pl/
,但我只收到以下内容:
* 即将 connect() 到 gratka.pl 端口 80
* 正在尝试 195.8.99.42... * 已连接
* 已连接到 gratka.pl (195.8.99.42) 端口 80
GET / HTTP/1.1
用户代理:Mozilla/5.0 (Windows; U;Windows NT 5.1;pl;rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2
主机:gratka.pl
接受:*/*< HTTP/1.1 302 找到
< Cache-Control: no-cache
< Content-length: 0
< Location: ..
* 到主机 gratka.pl 的连接 #0 保持不变
* 向该 URL 发出另一个请求:' http://blad .gratka.pl/403.html '
* 即将 connect() 到 blad.gratka.pl 端口 80
* 正在尝试 195.8.99.1... * 已连接
* 已连接到 blad.gratka.pl (195.8.99.1) 端口 80
GET / 403.html HTTP/1.1
用户代理:Mozilla/5.0(Windows;U;Windows NT 5.1;pl;rv:1.9.1.2) Gecko/20090729 Firefox/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 标头的问题?任何帮助将不胜感激!
编辑:当我在本地主机上执行上述脚本时,它正在工作,但在专用服务器上执行时它不起作用。有什么猜测吗?