Query( ) 主方法
Query() 靜態方法
傳回值:QueryList物件
#Query方法為QueryList唯一的主方法,以靜態的方式呼叫。
原型:
QueryList::Query($page,array $rules, $range = '', $outputEncoding = null, $inputEncoding = null ,$removeHead = false)
中文解釋:
QueryList::Query(采集的目标页面,采集规则[,区域选择器][,输出编码][,输入编码][,是否移除头部])//采集规则$rules = array( '规则名' => array('jQuery选择器','要采集的属性'[,"标签过滤列表"][,"回调函数"]), '规则名2' => array('jQuery选择器','要采集的属性'[,"标签过滤列表"][,"回调函数"]), .......... [,"callback"=>"全局回调函数"]);//注:方括号括起来的参数可选
##參數解釋:
- $page 採集的目標頁面
類型: string - 要抓取的網頁URL位址(支援https);或是html程式碼片段
- $rules 擷取規則
- 類型:
array
##規則名稱
規則名稱隨便取,只要不重複就行。
jQuery選擇器 - 任意CSS3選擇器,與jQuery選擇器完全通用
要擷取的屬性
值为以下3种: 1.text:返回当前选中标签下面的纯文本 2.html:返回当前选中标签下面的html片段 3.[HTML标签属性]:如src、href、name、data-src等任意HTML标签属性名
#過濾標籤清單如果要使用QueryList的内容过滤功能,就请设置这个参数,多个值之间用空格隔开 1.当标签名前面添加减号(-)时(此时标签可以为任意的jQuery选择器),表示移除该标签以及标签内容。 2.当标签名前面没有减号(-)时,当 [要采集的属性] 值为text时表示需要保留的HTML标签,为html时表示要过滤掉的HTML标签
說明:有減號與沒有減號的差別就在於,有減號時會移除那個標籤包括那個標籤內的所有內容,沒有減號時只會移除那個標籤並不會移除標籤內的內容範例:內容過濾
##回呼函數/全域回呼函數類型:callback
在回呼函數裡面可以做任意額外的事情,如:替換內容、補全鏈接,下載圖片等等;回呼函數有兩個參數,第一個參數是選擇到的內容,第二個參數是選擇器陣列下標(也就是規則名稱
),回呼函數會覆寫全域回調函數。 注意
:回呼函數裡面不能使用QueryList進行巢狀多層級擷取,請將這些運算延遲到
方法的回呼函數中去使用。
$range 區域選擇器(可選)
類型:string預設值:''
區域選擇器
或說範圍選擇器
,指先依照規則選出幾個大塊,然後再分別在塊裡面進行相關的選擇。當採集清單的時候,建議設定這個參數。
指要以什麼編碼輸出(UTF-8,GB2312,…..),防止出現亂碼,如果設定null
則不改變原始字串編碼
$inputEncoding 輸入編碼(可選)
類型:string
預設值:null
明確指定輸入的頁面編碼格式(UTF-8,GB2312,…..),防止亂碼出現,如果設定null
則自動辨識
#$removeHead 是否移除頭部(可選)
類型:bool
預設值:false
注意:當這個參數設定為true的時候,無法選擇頁面中head區域裡面的內容。