Query( ) 主方法
Query() 靜態(tài)方法
返回值:QueryList對(duì)象
Query方法為QueryList唯一的主方法,用靜態(tài)的方式調(diào)用。
原型:
QueryList::Query($page,array $rules, $range = ‘’, $outputEncoding = null, $inputEncoding = null,$removeHead = false)
中文解釋:
QueryList::Query(采集的目標(biāo)頁(yè)面,采集規(guī)則[,區(qū)域選擇器][,輸出編碼][,輸入編碼][,是否移除頭部])//采集規(guī)則$rules = array( '規(guī)則名' => array('jQuery選擇器','要采集的屬性'[,"標(biāo)簽過(guò)濾列表"][,"回調(diào)函數(shù)"]), '規(guī)則名2' => array('jQuery選擇器','要采集的屬性'[,"標(biāo)簽過(guò)濾列表"][,"回調(diào)函數(shù)"]), .......... [,"callback"=>"全局回調(diào)函數(shù)"]);//注:方括號(hào)括起來(lái)的參數(shù)可選
參數(shù)解釋:
$page 采集的目標(biāo)頁(yè)面
類(lèi)型:string
要抓取的網(wǎng)頁(yè)URL地址(支持https);或者是html代碼片段
$rules 采集規(guī)則
類(lèi)型:array
- 規(guī)則名
規(guī)則名隨便取,只要不重復(fù)就行。 - jQuery選擇器
任意CSS3選擇器,與jQuery選擇器完全通用 - 要采集的屬性
值為以下3種: 1.text:返回當(dāng)前選中標(biāo)簽下面的純文本 2.html:返回當(dāng)前選中標(biāo)簽下面的html片段 3.[HTML標(biāo)簽屬性]:如src、href、name、data-src等任意HTML標(biāo)簽屬性名
過(guò)濾標(biāo)簽列表
如果要使用QueryList的內(nèi)容過(guò)濾功能,就請(qǐng)?jiān)O(shè)置這個(gè)參數(shù),多個(gè)值之間用空格隔開(kāi) 1.當(dāng)標(biāo)簽名前面添加減號(hào)(-)時(shí)(此時(shí)標(biāo)簽可以為任意的jQuery選擇器),表示移除該標(biāo)簽以及標(biāo)簽內(nèi)容。 2.當(dāng)標(biāo)簽名前面沒(méi)有減號(hào)(-)時(shí),當(dāng) [要采集的屬性] 值為text時(shí)表示需要保留的HTML標(biāo)簽,為html時(shí)表示要過(guò)濾掉的HTML標(biāo)簽
說(shuō)明:有減號(hào)與沒(méi)有減號(hào)的區(qū)別就在于,有減號(hào)時(shí)會(huì)移除那個(gè)標(biāo)簽包括那個(gè)標(biāo)簽內(nèi)的所有內(nèi)容,沒(méi)有減號(hào)時(shí)只會(huì)移除那個(gè)標(biāo)簽并不會(huì)移除標(biāo)簽內(nèi)的內(nèi)容
例子:內(nèi)容過(guò)濾
回調(diào)函數(shù)/全局回調(diào)函數(shù)
類(lèi)型:callback
在回調(diào)函數(shù)里面可以做任意額外的事情,如:替換內(nèi)容、補(bǔ)全鏈接,下載圖片等等;
回調(diào)函數(shù)有倆個(gè)參數(shù),第一個(gè)參數(shù)是選擇到的內(nèi)容,第二個(gè)參數(shù)是選擇器數(shù)組下標(biāo)(也就是規(guī)則名
),回調(diào)函數(shù)會(huì)覆蓋全局回調(diào)函數(shù)。
注意:回調(diào)函數(shù)里面不能使用QueryList進(jìn)行嵌套多級(jí)采集,請(qǐng)把這些操作延遲到getData( )
方法的回調(diào)函數(shù)中去使用。
$range 區(qū)域選擇器 (可選)
類(lèi)型:string
默認(rèn)值:''
區(qū)域選擇器
或者說(shuō)范圍選擇器
,指 先按照規(guī)則 選出 幾個(gè)大塊 ,然后再分別再在塊里面 進(jìn)行相關(guān)的選擇。當(dāng)采集列表的時(shí)候,建議設(shè)置這個(gè)參數(shù)。
查看區(qū)域選擇器例子:http://doc.querylist.cc/site/index/doc/29
$outputEncoding 輸出編碼(可選)
類(lèi)型:string
默認(rèn)值:null
指要以什么編碼輸出(UTF-8,GB2312,…..),防止出現(xiàn)亂碼,如果設(shè)置null
則不改變?cè)址幋a
$inputEncoding 輸入編碼(可選)
類(lèi)型:string
默認(rèn)值:null
明確指定輸入的頁(yè)面編碼格式(UTF-8,GB2312,…..),防止出現(xiàn)亂碼,如果設(shè)置null
則自動(dòng)識(shí)別
$removeHead 是否移除頭部(可選)
類(lèi)型:bool
默認(rèn)值:false
是否移除頁(yè)面頭部區(qū)域,亂碼終極解決方案。
注意:當(dāng)這個(gè)參數(shù)設(shè)置為true
的時(shí)候,無(wú)法選擇頁(yè)面中head區(qū)域里面的內(nèi)容。