#QueryList交流社区: [http://querylist.cc/](http://querylist.cc/)
#QueryList文档: [http://doc.querylist.cc/](http://doc.querylist.cc/)
#QueryList交流QQ群:123266961
#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站
微动态:[http://querylist.jaekj.com/](http://querylist.jaekj.com/)
* thinkphp版本:V3.1.2
* QueryList版本:V1.6
* 后台地址: /admin
* 后台账号密码: guest guest
这个demo站实现的功能相当于一个轻量级的微博站,内容全自动采集更新,可以自定义时间间隔采集任意站点的信息,自动更新到这个站点来,只需要在后台规则库简单的添加一条规则就可以实现全自动采集了,大家可以自行进入后台进行尝试,体验QueryList的魅力!
冷云搞笑:[http://x.44i.cc/](http://x.44i.cc/)
##作者信息
```
Author : Jaeger
Email : hj.q@qq.com
交流QQ群:123266961
```