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