出於某種原因,我似乎無法通過cURL獲取此特定網頁的內容。我設法使用cURL來達到「頂級頁面」的內容,但同樣的自建快速cURL函數似乎不適用於其中一個關聯的子網頁。似乎無法通過cURL獲取網頁的內容 - 用戶代理和HTTP頭都設置了?
頂級頁:http://www.deindeal.ch/
一個子頁:http://www.deindeal.ch/deals/hotel-cristal-in-nuernberg-30/
我捲曲功能(在functions.php中)
function curl_get($url) {
$ch = curl_init();
$header = array(
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7',
'Accept-Language: en-us;q=0.8,en;q=0.6'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13',
CURLOPT_HTTPHEADER => $header
);
curl_setopt_array($ch, $options);
$return = curl_exec($ch);
curl_close($ch);
return $return;
}
PHP文件,以獲得內容(使用回聲測試)
require "functions.php";
require "phpQuery.php";
echo curl_get('http://www.deindeal.ch/deals/hotel-walliserhof-zermatt-2-naechte-30/');
到目前爲止,我已經嘗試以下操作來得到這個工作
- 冉文件在本地(XAMPP)和遠程(LAMP)。
- 在此處推薦的用戶代理和HTTP標頭中添加file_get_contents and CURL can't open a specific website - 功能
curl_get()
包含所有選項之前爲當前的所有選項,但CURLOPT_USERAGENTand
CURLOPT_HTTPHEADERS`除外。
網站是否可以通過cURL或其他遠程文件打開機制完全阻止請求,而不管提供多少數據來嘗試發出真正的瀏覽器請求?
另外,是否有可能診斷爲什麼我的請求沒有任何變化?
任何幫助回答上述兩個問題,或編輯/建議獲取文件的內容,即使通過不同於cURL的方法將不勝感激;)。
感謝您的信息,並添加'CURLOPT_FOLLOWLOCATION'根據響應標題(重定向到'http://www.deindeal.ch/welcome/?..'),但現在顯然,響應標題顯示與您嘗試訪問瀏覽器中的網址不同的位置。如果我在瀏覽器中訪問網址,我發現自己沒有重定向 - 並且網址被完全請求,但是當發出cURL請求時,提供了不同的位置 - 你知道這可能是爲什麼嗎? – Avicinnian 2011-12-30 02:50:45
看我上面的編輯。 – sberry 2011-12-30 02:59:06