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