Méthode principale Query()
Méthode statique Query()
Valeur de retour : Objet QueryList
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进行嵌套多级采集,请把这些操作延迟到getData( )
方法的回调函数中去使用。
$range 区域选择器 (可选)
类型:string
默认值:''
区域选择器
或者说范围选择器
,指 先按照规则 选出 几个大块 ,然后再分别再在块里面 进行相关的选择。当采集列表的时候,建议设置这个参数。
查看区域选择器例子:http://doc.querylist.cc/site/index/doc/29
$outputEncoding 输出编码(可选)
类型:string
默认值:null
🎜QueryList::Query($page,array $rules, $range = '', $outputEncoding = null, $inputEncoding = null,$removeHead = false)🎜🎜Explication chinoise :🎜rrreee
Explication du paramètre :
$page La page cible collectée
🎜Type :string
L'adresse URL de la page Web à explorer (prend en charge https ); Ou un extrait de code html🎜
< /span >$rules collection Rules
🎜Type :array
🎜- Nom de la règle
Le nom de la règle peut être choisi avec désinvolture, tant que cela ne se répète pas. - Sélecteur jQuery
Tout sélecteur CSS3, complètement commun avec le sélecteur jQuery - Attributs à collecter rrreee li>
- 🎜Liste des balises de filtre🎜rrreee🎜Explication : La différence entre avoir un signe moins et ne pas avoir de signe moins est que lorsqu'il y a un signe moins, cette balise sera supprimée, y compris le balises qu'il contient Tout le contenu. S'il n'y a pas de signe moins, seule cette balise sera supprimée et le contenu de la balise ne sera pas supprimé🎜
🎜Exemple : Filtrage de contenu🎜
- 🎜Fonction de rappel/Fonction de rappel globale
Type :rappel
Vous pouvez effectuer toutes les opérations supplémentaires dans la fonction de rappel, telles que : remplacer le contenu, terminer liens, télécharger des images, etc. ;
La fonction de rappel a deux paramètres. Le premier paramètre est le contenu sélectionné et le deuxième paramètre est l'indice du tableau de sélection (c'est-à-direnom de la règle
). . La fonction de rappel couvrira la fonction de rappel globale.
Remarque : QueryList ne peut pas être utilisé dans la fonction de rappel pour une collection multi-niveaux imbriquée. Veuillez confier ces opérations à la fonction de rappel de la méthodegetData( )
. 🎜
Sélecteur de région $range (facultatif)
🎜Type :string
Valeur par défaut :
''
🎜 🎜 Le sélecteur de zone
ou le sélecteur de plage
signifie d'abord sélectionner plusieurs grands blocs selon les règles, puis effectuer les sélections pertinentes dans les blocs respectivement. Lors de la collecte de listes, il est recommandé de définir ce paramètre. 🎜🎜Voir l'exemple de sélecteur de région : http://doc.querylist.cc/site/index/doc/29🎜
$outputEncoding Encodage de sortie (facultatif)
🎜Type : chaîne< /code>
Valeur par défaut :null
🎜Fait référence à l'encodage à produire (UTF-8, GB2312,…..) pour éviter les caractères tronqués. Si null
est défini, l'encodage de la chaîne d'origine ne sera pas modifiénull
则不改变原字符串编码
$inputEncoding 输入编码(可选)
类型:string
默认值:null
明确指定输入的页面编码格式(UTF-8,GB2312,…..),防止出现乱码,如果设置null
则自动识别
$removeHead 是否移除头部(可选)
类型:bool
默认值:false
是否移除页面头部区域,乱码终极解决方案。
注意:当这个参数设置为true
$inputEncoding encodage d'entrée (facultatif)< / h4>Type : string
Valeur par défaut : null
null
est défini, il sera automatiquement reconnu🎜$removeHead S'il faut supprimer l'en-tête (facultatif)
🎜Type :bool
< br/>Valeur par défaut : false
🎜🎜Supprimer ou non la zone d'en-tête de page, la solution ultime aux caractères tronqués. Remarque : Lorsque ce paramètre est défini sur
true
, le contenu dans la zone d'en-tête de la page ne peut pas être sélectionné. 🎜🎜