Я использую 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; ?>
но веб-сайт не исключает его через скрипт, который дает пользователю исключение в результате, но если мы обычно вставляем URL-адрес в браузере, он открывает страницу отлично.
Пожалуйста, помогите, что я делаю неправильно здесь.
Спасибо и приветствую
Я запустил следующую программу / скрипт, и страница была загружена правильно. Это, скорее всего, означает, что сервер, на котором выполняется ваш скрипт, не может добраться до сервера на странице «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-скрипт, выполните следующую команду
curl -I 'http://criminaljustice.state.ny.us/cgi/internet/nsor/fortecgi?serviceName=WebNSOR&templateName=detail.htm&requestingHandler=WebNSORDetailHandler&ID=368343543'
Это приведет к отображению заголовков ответов, которые могут содержать некоторые сведения о том, почему ваш запрос не работает.
Для useragent, я думаю, вы хотите использовать константу CURLOPT_USERAGENT
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
У меня была та же проблема, которая в конечном итоге была не следующей. Я думал, что завиток установит его по умолчанию, но я не думаю !? Как только я его установил, он получил полный сайт без проблем
Является ли пользовательским агентом в таком массиве? Я этого раньше не видел.
Попробуйте использовать просто строку, т. Е.
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');