解析file_get_contents模仿瀏覽器頭(user_agent)獲取數(shù)據(jù)
什么是user agent
User Agent中文名為用戶代理,簡稱 UA,它是一個特殊字符串頭,使得服務(wù)器能夠識別客戶使用的操作系統(tǒng)及版本、CPU 類型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語言、瀏覽器插件等。
網(wǎng)站可以通過判斷不同UA來呈現(xiàn)不同的網(wǎng)站,例如手機訪問和PC訪問顯示不同的頁面。
PHP在用file_get_contents函數(shù)采集網(wǎng)站時,有時會明明用瀏覽器可以看,但就是采不到任何內(nèi)容。
這很有可能是服務(wù)器上做了設(shè)置,根據(jù) User_agent判斷是否為正常的瀏覽器請求,因為默認PHP的file_get_contents函數(shù)是不發(fā)送ua的。
如果要采集這樣的網(wǎng)站,我們就必須要讓PHP模擬瀏覽器發(fā)送UA,欺騙網(wǎng)站返回正常內(nèi)容。
實現(xiàn)如下:
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環(huán)境下的UA,當然你也可以換成其他的。比如中火狐
也可以這樣讀?。?BR>
$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: *//*"
)
);
- 深入file_get_contents函數(shù)抓取內(nèi)容失敗的原因分析
- 解析PHP中的file_get_contents獲取遠程頁面亂碼的問題
- file_get_contents("php://input", "r")實例介紹
- php讀取本地文件常用函數(shù)(fopen與file_get_contents)
- PHP file_get_contents設(shè)置超時處理方法
- php file_get_contents抓取Gzip網(wǎng)頁亂碼的三種解決方法
- 解決file_get_contents無法請求https連接的方法
- PHP中file_get_contents高級用法實例
- php中file_get_contents與curl性能比較分析
- php 使用file_get_contents讀取大文件的方法
- PHP中file_get_contents函數(shù)抓取https地址出錯的解決方法(兩種方法)
相關(guān)文章
實測在class的function中include的文件中非php的global全局環(huán)境
正如標題所言經(jīng)測試的結(jié)果為:在class中include后,被include文件變量域已經(jīng)變成func中了,非全局.但是可以通過global提升,感興趣的朋友可以參考下哈,希望對大家有所幫助2013-07-07解析PHP留言本模塊主要功能的函數(shù)說明(代碼可實現(xiàn))
本篇文章是對PHP留言本中主要的函數(shù)以及代碼進行了詳細的分析介紹,需要的朋友參考下2013-06-06php 中self,this的區(qū)別和操作方法實例分析
這篇文章主要介紹了php 中self,this的區(qū)別和操作方法,結(jié)合實例形式分析了PHP面向?qū)ο蟪绦蛟O(shè)計中self,this的功能、區(qū)別、使用方法與操作注意事項,需要的朋友可以參考下2019-11-11PHP在innodb引擎下快速代建全文搜索功能簡明教程【基于xunsearch】
這篇文章主要介紹了PHP在innodb引擎下快速代建全文搜索功能的方法,可基于開源搜索引擎xunsearch實現(xiàn),簡明扼要的講述了安裝與使用的步驟與相關(guān)操作技巧,需要的朋友可以參考下2016-10-10