<p>
QueryList 使用
//获取采集对象
$hj = QueryList::Query('?wd=jaekj',array('title'=>array('h3','text')));
//输出结果:二维关联数组
print_r($hj->jsonArr);
//输出结果:JSON数据
echo $hj->getJSON();
上面的代码实现的功能是采集百度搜索结果页面的所有搜索结果的标题,然后分别以数组和JSON格式输出。
QueryList 静态方法Query原型:
Query($page,$regArr,$regRange='',$getHtmlWay="curl",$output_encoding=false)
一共有五个参数,后面三个参数是可选的
$page
类型: string
说明: 必选参数,要抓取的网页URL地址(支持https),或者是html源代码;这意味着你可以直接传一个网址给QueryList,也可以将通过自己的方式获取到的并经过你自己处理过的HTML源码传给QueryList
$regArr
类型: array
说明: 必选参数,选择器数组,格式array("名称"=>array("选择器","类型"[,"标签过滤列表"][,"回调函数"]),.......[,"callback"=>"全局回调函数"]);
选择器:可以为任意的jQuery选择器语法
类型:值 "text" ,"html" ,"HTML标签属性"
标签过滤列表:可选,当标签名前面添加减号(-)时(此时标签可以为任意的元素选择器),表示移除该标签以及标签内容;否则当 类型 值为text时表示需要保留的HTML标签,为html时表示要过滤掉的HTML标签。有减号与没有减号的区别就在于,有减号时会移除那个标签包括那个标签内的所有内容,没有减号时只会移除那个标签并不会移除标签内的内容
回调函数 / 全局回调函数:可选,字符串(函数名) 或 数组(array("类名","类的静态方法"))或 匿名函数,回调函数应有俩个参数,第一个参数是选择到的内容,第二个参数是选择器数组下标,回调函数会覆盖全局回调函数
$regRange
类型: array
默认值: ''
说明: 可选参数,块选择器,指 先按照规则 选出 几个大块 ,然后再分别再在块里面 进行相关的选择
$getHtmlWay
类型: string
默认值: 'curl'
可选值: 'curl','get'
说明: 可选参数,源码获取方式,指是通过curl抓取源码,还是通过file_get_contents抓取源码
$outputEncoding
类型: string
默认值: false
可选值: false,'UTF-8','GB2312'等
说明: 可选参数,输出编码格式,指要以什么编码输出(UTF-8,GB2312,.....),防止出现乱码,如果设置为 假值 则不改变原字符串编码
QueryList 属性
得到多维数组格式的采集结果
jsonArr
QueryList 方法
重新设置选择器
void setQuery($regArr,$regRange='')
一共两个参数,第二个参数是可选的,参数意义同构造函数。
得到JSON格式的采集结果
string getJSON()
无参,返回JSON字符串。
QueryList 依赖库
phpQuery
其它说明
QueryList 内置的只是简单的源码抓取方法,遇到更复杂的抓取情况,如:需要登陆 身份验证 时,请配合其它的PHP的HTTP类来使用,通过将辅助的HTTP类抓取到的网页源码传给QueryList即可。<sub></sub>
</p>