update readme

This commit is contained in:
JAE 2016-01-14 11:29:09 +08:00
parent fbea1aaa94
commit 4a003e5490

@ -1,11 +1 @@
#QueryList交流社区: [http://querylist.cc/](http://querylist.cc/) #QueryList交流QQ群:123266961 <a target="_blank" href="http://shang.qq.com/wpa/qunwpa?idkey=a1b248ae30b3f711bdab4f799df839300dc7fed54331177035efa0513da027f6"><img border="0" src="http://pub.idqqimg.com/wpa/images/group.png" alt="╰☆邪恶 魔方☆" title="╰☆邪恶 魔方☆"></a> #QueryList简介 *** QueryList是一个基于phpQuery的通用列表采集类,是一个简单、 灵活、强大的采集工具,采集任何复杂的页面 基本上就一句话就能搞定了。 #QueryList 使用 ```php //获取采集对象 $hj = QueryList::Query('http://www.baidu.com/s?wd=QueryList',array('title'=>array('h3','text'),'link'=>array('h3>a','href'))); //输出结果:二维关联数组 print_r($hj->data); ``` 上面的代码实现的功能是采集百度搜索结果页面的所有搜索结果的标题和链接,然后分别以二维关联数组的格式输出。 ###QueryList 静态方法 * **主方法** >***Query***($page,array $regArr, $regRange = '', $outputEncoding = null, $inputEncoding = null,$removeHead = false) 一共有六个参数,后面四个参数是可选的,返回QueryList对象。 >$page >>类型: **string** >>说明: **必选参数要抓取的网页URL地址(支持https)或者是html源代码这意味着你可以直接传一个网址给QueryList也可以将通过自己的方式获取到的并经过你自己处理过的HTML源码传给QueryList** >$regArr >>类型: **array** >> 说明: **必选参数选择器数组格式array("名称"=>array("选择器","类型"[,"标签过滤列表"][,"回调函数"]),.......[,"callback"=>"全局回调函数"]);** >>>+ **选择器**:可以为任意的jQuery选择器语法 >>>+ **类型**:值 "text" ,"html" ,"HTML标签属性" >>>+ **标签过滤列表**:可选,当标签名前面添加减号(-)时(此时标签可以为任意的元素选择器),表示移除该标签以及标签内容;否则当 **类型** 值为text时表示需要保留的HTML标签为html时表示要过滤掉的HTML标签。有减号与没有减号的区别就在于有减号时会移除那个标签包括那个标签内的所有内容没有减号时只会移除那个标签并不会移除标签内的内容 >>>+ **回调函数** / **全局回调函数**:可选,字符串(函数名) 或 数组array("类名","类的静态方法"))或 匿名函数,回调函数应有俩个参数,第一个参数是选择到的内容,第二个参数是选择器数组下标,回调函数会覆盖全局回调函数 >$regRange >>类型: **array** >默认值: **''** >说明: **可选参数,块选择器,指 先按照规则 选出 几个大块 ,然后再分别再在块里面 进行相关的选择** >$outputEncoding >>类型: **string** >>默认值: **null** >>可选值: **'UTF-8','GB2312'等** >>说明: **可选参数,输出的编码格式,指要以什么编码输出(UTF-8,GB2312,.....),防止出现乱码,如果设置为 假值 则不改变原字符串编码** >$inputEncoding >>类型: **string** >>默认值: **null** >>可选值: **'UTF-8','GB2312'等** >>说明: **可选参数,输入的编码格式,明确指定输入的页面编码格式(UTF-8,GB2312,.....),防止出现乱码,如果设置为 假值 则自动识别** >$removeHead >>类型: **bool** >>默认值: **false** >>可选值: **true,false** >>说明: **可选参数,是否移除页面头部区域,乱码终极解决方案。注意设置为true后将采集不到head区域的内容** * **运行QueryList扩展方法**
>***run($class,$args = array())***
>
>$class
>>类型: **string**
>>说明: **插件名称**
>$args
>>类型: **mix**
>>说明: **参数**
###QueryList 属性 * **得到多维数组格式的采集结果** >***data*** ###QueryList 方法 * **重新设置选择器** >void ***setQuery***(array $regArr, $regRange = '',$outputEncoding = null, $inputEncoding = null,$removeHead = false) 一共两个参数,第二个参数是可选的,参数意义同构造函数。 ##QueryList 依赖库 ``` phpQuery ``` phpQuery项目主页:[https://code.google.com/p/phpquery/](https://code.google.com/p/phpquery/) ##其它说明 QueryList 内置的只是简单的源码抓取方法,遇到更复杂的抓取情况,如:需要登陆 身份验证 时请配合其它的PHP的HTTP类来使用通过将辅助的HTTP类抓取到的网页源码传给QueryList即可。 ##DEMO站 <s> 微动态:[http://querylist.jaekj.com/](http://querylist.jaekj.com/) * thinkphp版本:V3.1.2 * QueryList版本:V1.6 * 后台地址: /admin * 后台账号密码: guest guest </s> 这个demo站实现的功能相当于一个轻量级的微博站内容全自动采集更新可以自定义时间间隔采集任意站点的信息自动更新到这个站点来只需要在后台规则库简单的添加一条规则就可以实现全自动采集了大家可以自行进入后台进行尝试体验QueryList的魅力 冷云搞笑:[http://x.44i.cc/](http://x.44i.cc/) ##作者信息 ``` Author : Jaeger Email : hj.q@qq.com 交流QQ群:123266961 ```
#QueryList交流社区: [http://querylist.cc/](http://querylist.cc/) #QueryList文档: [http://doc.querylist.cc/](http://doc.querylist.cc/) #QueryList交流QQ群:123266961 <a target="_blank" href="http://shang.qq.com/wpa/qunwpa?idkey=a1b248ae30b3f711bdab4f799df839300dc7fed54331177035efa0513da027f6"><img border="0" src="http://pub.idqqimg.com/wpa/images/group.png" alt="╰☆邪恶 魔方☆" title="╰☆邪恶 魔方☆"></a> #QueryList简介 *** QueryList是一个基于phpQuery的通用列表采集类,是一个简单、 灵活、强大的采集工具,采集任何复杂的页面 基本上就一句话就能搞定了。 #QueryList 使用 ```php //获取采集对象 $hj = QueryList::Query('http://www.baidu.com/s?wd=QueryList',array('title'=>array('h3','text'),'link'=>array('h3>a','href'))); //输出结果:二维关联数组 print_r($hj->data); ``` 上面的代码实现的功能是采集百度搜索结果页面的所有搜索结果的标题和链接,然后分别以二维关联数组的格式输出。 ## 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"=>"全局回调函数"] ); //注:方括号括起来的参数可选 ``` ### 参数解释: 查看文档:http://doc.querylist.cc/site/index/doc/11 ## QueryList 扩展 **Request扩展** 可以实现如携带cookie、伪造来路等任意复杂的网络请求再也不用担心QueryList内置的抓取功能太弱了。 **Login扩展** 可以实现模拟登陆然后采集。 **Multi扩展** 多线程(多进程)采集扩展。 扩展通过QueryList::run 方法运行。 ##QueryList 安装 `composer require jaeger/querylist` 包含QueyListy以及扩展的完整Composer配置如下: { "require": { "jaeger/querylist": "^3.1", "jaeger/querylist-ext-request":"^1.0", "jaeger/querylist-ext-multi":"^1.0", "jaeger/querylist-ext-login":"^1.0" } } ##QueryList 依赖库 ``` phpQuery ``` phpQuery项目主页:[https://code.google.com/p/phpquery/](https://code.google.com/p/phpquery/) ##其它说明 QueryList 内置的只是简单的源码抓取方法,遇到更复杂的抓取情况,如:需要登陆 身份验证 时请配合其它的PHP的HTTP类来使用通过将辅助的HTTP类抓取到的网页源码传给QueryList即可。 ##DEMO站 <s> 微动态:[http://querylist.jaekj.com/](http://querylist.jaekj.com/) * thinkphp版本:V3.1.2 * QueryList版本:V1.6 * 后台地址: /admin * 后台账号密码: guest guest </s> 这个demo站实现的功能相当于一个轻量级的微博站内容全自动采集更新可以自定义时间间隔采集任意站点的信息自动更新到这个站点来只需要在后台规则库简单的添加一条规则就可以实现全自动采集了大家可以自行进入后台进行尝试体验QueryList的魅力 冷云搞笑:[http://x.44i.cc/](http://x.44i.cc/) ##作者信息 ``` Author : Jaeger Email : hj.q@qq.com 交流QQ群:123266961 ```