技术CTO-关注编程入门知识,提供编程入门教程

您的位置: 首页 > 原创文章 > 正文

php超级强大的采集类库

来源: 技术CTO 阅读:

php常用的采集方法是通过file_get_contents()获取到网页内容,然后采用正则表达式去匹配自己想要的内容,但是今天作者分享一个无比强大的php采集类库:phpQuery,能像jquery一样去操作html页面,不用写正则就能采集任意内容,下面我们以采集iteye资讯列表内容为例:

require 'QueryList.class.php';

//采集iteye的资讯列表
$url = "http://www.iteye.com/news";
$reg = array("title"=>array(".content h3 a:eq(1)","text"),"url"=>array(".content h3 a:eq(1)","href"));
$rang = "#index_main .news";
//使用curl抓取源码并以utf-8编码格式输出
$qy = new QueryList($url,$reg,$rang,'curl','utf-8');
$arr = $qy->jsonArr;
print_r($arr);


//采iteye的内容页内容
$url = "http://www.iteye.com/news/28978";
$reg = array("title"=>array(".title a:eq(0)","text"),"content"=>array("#news_content","html"));
$qy = new QueryList($url,$reg);
$arr = $qy->jsonArr;
print_r($arr);

像jquery一样,phpQuery通过页面的id、class、html标签等等去获取内容
QueryList($url,$reg,$rang='',$way="curl",$output_encoding=false)
参数解释:
$url          要抓取的网页URL地址(支持https);或者是html源代码
$reg        【选择器数组】说明:格式array("名称"=>array("选择器","类型"),.......),【类型】说明:值 "text" ,"html" ,"属性"
$rang      【块选择器】:指 先按照规则 选出 几个大块 ,然后再分别再在块里面 进行相关的选择
$way       【源码获取方式】指是通过curl抓取源码,还是通过file_get_contents抓取源码
$output_encoding 【输出编码格式】指要以什么编码输出(UTF-8,GB2312,.....),防止出现乱码,如果设置为 假值 则不改变原字符串编码
通过phpQuery类库,我们可以简单方便的采集任何一个复杂页面。

http://www.jscto.net/uploadfile/2014/0430/20140430120706706.zip

本文出自技术CTO:http://www.jscto.net,转载请注明出处。

^_^ 如果您热爱技术、热爱编程,想与更多的朋友一起交流学习,欢迎加入本站官方QQ群:345733473 ^_^