2010-11-15 20 views
12

Şu an bir süredir bir siteden bilgi kullanıyoruz (sitenin kaynağı ve yaptıklarından bahsederseniz izin verdiği bir şey) ve bilgileri el ile kopyalıyoruz. Tahmin edebileceğiniz gibi bu oldukça hızlı bir şekilde sıkıcı olabilir, bu yüzden bilgiyi bir PHP betiğiyle getirerek süreci otomatikleştirmeye çalışıyorum.PHP betiğinizi tarayıcı olarak nasıl gizleyebilirsiniz?

ben almaya çalışıyorum URL: Ben bir file_get_contents() çalışırsanız o çalışan bir tarayıcıda girerseniz

http://mediaforest.ro/weeklycharts/viewchart.aspx?r=WeeklyChartRadioLocal&y=2010&w=46 08-11-10 14-11-10 

Ben Bozuk İstek

Düşündüm olsun

$ch = curl_init(); 

$header=array(
    'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12', 
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 
    'Accept-Language: en-us,en;q=0.5', 
    'Accept-Encoding: gzip,deflate', 
    'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7', 
    'Keep-Alive: 115', 
    'Connection: keep-alive', 
); 

curl_setopt($ch,CURLOPT_URL,$url); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 
curl_setopt($ch,CURLOPT_COOKIEFILE,'cookies.txt'); 
curl_setopt($ch,CURLOPT_COOKIEJAR,'cookies.txt'); 
curl_setopt($ch,CURLOPT_HTTPHEADER,$header); 
$result=curl_exec($ch); 

curl_close($ch); 

ben kontrol ettik ve başlıklar benim br ile aynıdır: bunlar istemci bir CURL tabanlı bir çözüm haddelenmiş böylece bir tarayıcı olup olmadığını görmek için kontrol o

http://www.php.net/manual/en/function.curl-setopt.php#78046 

Ne yazık ki bu da işe yaramıyor ve fikir gelmiyor: owser en başlıkları ve hala

yüzden başka bir çözüm çalıştı Kötü İsteği olsun. Neyi kaçırıyorum?

+8

'urlencode'unu' file_get_contents' çağırmadan önce URL'de kullandınız mı? –

+0

Lanet olsun, utanç verici ... bunu nasıl özleyebilirim? – pandronic

+1

Eh, file_get_contents() ile bile çalışır, bu yüzden herhangi bir koruma yoktur. Herkesin zamanını boşa harcadığım için üzgünüm :) – pandronic

cevap

11

URL'nizden kaçmayı deneyin, bu şekilde bana çalışır.

http://mediaforest.ro/weeklycharts/viewchart.aspx?r=WeeklyChartRadioLocal&y=2010&w=46%2008-11-10%2014-11-10 
8

Elbette başka biriyle aracısının yerini alabilir curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12');

kullanın. Bununla birlikte, "Hatalı İstek", büyük olasılıkla, bir eksik/kötü kullanıcı ara yüzü ile ilgili DEĞİLDİR. Web sunucusunun isteğini beğenmediği gibi geliyor. İstenen URI'nin arkasındaki uygulama değil.

İlgili konular