Bir web sayfası içeriği almak için çalışmıyor kıvırmak, neden?

3 Cevap php

Hi all i am using a curl script to go to a link and get its content for further manipulation. following is the link and curl script:

<?php 
$url = 'http://criminaljustice.state.ny.us/cgi/internet/nsor/fortecgi?serviceName=WebNSOR&amp;templateName=detail.htm&amp;requestingHandler=WebNSORDetailHandler&amp;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;
?>

ancak Web sitesi sonucunda kullanıcı istisna veriyor, ama biz normalde tarayıcıda url yapıştırın eğer sayfa mükemmel iyi açıyor komut dosyası aracılığıyla hariç değildir.

Ben burada yanlış ne yapıyorum, lütfen yardım.

Teşekkür ve saygılarımla

3 Cevap

Ben aşağıdaki program / komut koştu ve sayfa doğru indirildi. Bu büyük olasılıkla sizden komut çalıştırdığınız sunucu "criminaljustice.state.ny.us" de sunucu ulaşamaz anlamına gelir. Sunucu yanlış yapılandırılmış, ya da sunucu açıkça saldırgan ekran kazıma ortak bir sonucu olan, sizi engelleyen, çünkü bu da olduğunu.

<?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;

Ek sorun giderme ipucu - PHP komut dosyası çalışıyorsa makineye kabuk erişiminiz varsa, aşağıdaki komutu çalıştırın

curl -I 'http://criminaljustice.state.ny.us/cgi/internet/nsor/fortecgi?serviceName=WebNSOR&templateName=detail.htm&requestingHandler=WebNSORDetailHandler&ID=368343543'

İsteğiniz başarısız neden olarak bazı ipucu içerebilir bu irade çıkış yanıt başlıkları.

Kullanıcı aracısı böyle bir dizide olması gerekiyordu? Ben daha önce böyle yapmış görmedim.

Sadece düz bir dize kullanarak deneyin, yani

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');

Useragent için i CURLOPT_USERAGENT sabit kullanmak istiyorum düşünüyorum

curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");