file_get_contents模仿瀏覽器頭(user_agent)獲取

什麼是user agent
 User Agent中文名爲用戶代理,簡稱 UA,它是一個特殊字符串頭,使得服務器能夠識別客戶使用的操作系統及版本、CPU 類型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語言、瀏覽器插件等。
網站可以通過判斷不同UA來呈現不同的網站,例如手機訪問和PC訪問顯示不同的頁面。
PHP在用file_get_contents函數採集網站時,有時會明明用瀏覽器可以看,但就是採不到任何內容。
這很有可能是服務器上做了設置,根據 User_agent判斷是否爲正常的瀏覽器請求,因爲默認PHP的file_get_contents函數是不發送ua的。
如果要採集這樣的網站,我們就必須要讓PHP模擬瀏覽器發送UA,欺騙網站返回正常內容。
實現如下:
ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; 4399Box.560; .NET4.0C; .NET4.0E)');
這是模擬IE8環境下的UA,當然你也可以換成其他的。比如中火狐
也可以這樣讀取:
$opts = array(
'http'=>array(
    'method'=>"GET",
    'header'=>"Host: zh.wikipedia.org\r\n" . 
              "Accept-language: zh-cn\r\n" . 
              "User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; 4399Box.560; .NET4.0C; .NET4.0E)" .
              "Accept: *//*"
)
);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章