QueryList是一个基于phpQuery的通用列表采集类,是一个简单、 灵活、强大的采集工具。采集任何复杂的页面,基本上就一句话就能搞定了。关于phpQuery请移步《phpQuery,如jQuery一样轻松处理轻松处理DOM文档内容》,该篇文章详细介绍了phpQuery的功能和简单用法。
以雷锋网为例,假设现在想要采集雷锋网首页的文章列表,按照下面步骤来(以谷歌浏览器为例):
1.打开雷锋网(http://www.leiphone.com/),可以观察到文章列表的样子如下图(点击放大)。
2.按快捷键F12或者在网页上面右键选择审查元素,调出开发者工具。
3. 首先我们获取块选择器,将指针放到每条文章块区域观察选择器,很容易就能观察到快选择器了(如下图),是每个ID以post-开头的div,那么块选择器就可以写成[id^=post-]。
4. 现在要采集每条新闻的标题,将指针放到文章的标题上面,观察选择器(如下图),可以看到就是标题就是h3标签下的a标签,那么选择器就可以写成h3或者h3>a。
5. 如果我现在还想获取每条文章的封面图片地址(如下图),同理可以得到选择器为.text_img img,取它的src属性就可以得到图片的链接地址了。
6.OK,得到选择器后下一步就是开始写PHP采集代码了,得到选择器再写代码就灰常简单了直接上代码。
//引入QueryList采集器require 'ql/QueryList.class.php';
//要采集的目标网址
$url = "http://www.leiphone.com/";
//元素选择器
$reg = array(
"title" => array("h3","text"),
"img" => array(".text_img img","src")
);
//块选择器
$rang = "[id^=post-]";
//采集
$hj = QueryList::Query($url,$reg,$rang);
//输入采集结果
print_r($hj->jsonArr);
如下图,非常轻松地采集回来了。
相关链接:
phpQuery,如jQuery一样轻松处理轻松处理DOM文档内容
QueryList项目地址:http://git.oschina.net/jae/QueryList