2011-10-31 56 views
3

我使用php curl來獲取頁面。然而,許多網站似乎阻止捲曲,可能是由於它發送的標頭/用戶代理。任何人都有一個樣本捲曲標題,將模擬一個正常的瀏覽器呢?作爲普通用戶而不是像機器人一樣的php捲曲

這是我使用當前標題:

$headers[] = "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png, image/gif, image/x-bitmap, image/jpeg, image/pjpeg, *;q=0.5"; 
    $headers[] = "Cache-Control: max-age=0"; 
    $headers[] = "Connection: keep-alive"; 
    $headers[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"; 
    $headers[] = "Accept-Language: en-us,en;q=0.5"; 
    $headers[] = "Pragma: "; 
    $headers[] = 'Content-type: application/x-www-form-urlencoded;charset=UTF-8'; 

和用戶代理:

'Mozilla/6.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)'; 
+1

看起來像一個合法的用戶代理。也許他們使用除UA頭之外的其他機制來阻止漫遊器 –

+0

如果你想假裝正常的用戶瀏覽,不要使用curl,而是使用帶有javascript支持和所有東西的'headless browser'。網站無法檢測到這一點。 – Petr

回答

0

你確定你正確設置USER_AGENT?

curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/6.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)'); 

如果是這樣,那麼我建議,有可能是其他問題與您的查詢,而不是用戶代理過濾的東西 - 你得到什麼問題,到底是什麼?

0

下載fiddler網頁代理,並驗證您發送的內容與常規瀏覽器相同。當您使用PHP的提琴手時,一定要設置:

curl_setopt($ch, CURLOPT_PROXY, '127.0.0.1:8888'); 

也可能存在您也忽略的cookie。