我正在使用curl脚本来访问链接并获取其内容以进行进一步操作。以下是链接和curl脚本:
<?php
$url = 'http://criminaljustice.state.ny.us/cgi/internet/nsor/fortecgi?serviceName=WebNSOR&templateName=detail.htm&requestingHandler=WebNSORDetailHandler&ID=368343543';
//curl script to get content of given url
$ch = curl_init();
// set the target url
curl_setopt($ch, CURLOPT_URL,$url);
// request as if Firefox
curl_setopt($ch, 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($ch, CURLOPT_NOBODY, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result= curl_exec ($ch);
curl_close ($ch);
echo $result;
?>
但是网站并没有通过脚本排除它,它在结果中给用户带来异常,但如果我们通常将网址粘贴到浏览器中,它就可以完美地打开页面。
请帮忙,我在这里做错了什么。
感谢和问候
我运行了以下程序/脚本,页面已正确下载。 这很可能意味着您运行脚本的服务器无法到达“criminaljustice.state.ny.us”处的服务器。 这要么是因为您的服务器配置错误,要么是他们的服务器明确阻止您,这是积极的屏幕抓取的常见结果。
<?php
$url = 'http://criminaljustice.state.ny.us/cgi/internet/nsor/fortecgi?serviceName=WebNSOR&templateName=detail.htm&requestingHandler=WebNSORDetailHandler&ID=368343543';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, 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($ch, CURLOPT_NOBODY, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result= curl_exec ($ch);
curl_close ($ch);
echo $result;
其他故障排除提示 - 如果您对运行 PHP 脚本的计算机有 shell 访问权限,请运行以下命令
curl -I 'http://criminaljustice.state.ny.us/cgi/internet/nsor/fortecgi?serviceName=WebNSOR&templateName=detail.htm&requestingHandler=WebNSORDetailHandler&ID=368343543'
这将输出响应标头,其中可能包含一些有关请求失败原因的线索。
对于用户代理,我认为你想使用 CURLOPT_USERAGENT 常量
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
我遇到了同样的问题,最终导致 followlocation 选项未设置。我认为默认情况下,curl 会将其设置为 true,但我想不会!? 一旦我设置它,它就得到了完整的网站没有问题
用户代理是否应该位于这样的数组中?我以前没见过这样做的。
尝试仅使用纯字符串,即
curl_setopt($ch, CURLOPT_HTTPHEADER, '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');