phpQuery中pq()的使用(1)

作者:enenba | 发表于:2012-06-06 23:23 | 分类:php源码

今天研究了phpQuery,他能够像JQuery一样可以使用相似的选择器获取html标签的元素,pq()就像jQuery里的$()

以下使用pq()的例子

例子一:获取hao123中的搜索标签部分,如图部分:

点击查看原图

其html源码如下:

<dt id="searchGroupTabs" class="box-search_tabs clearfix" monkey="search">
	<a class="cur" data-t="web" href="#" onClick="baidu.event.preventDefault(event)" hidefocus="true">网页</a>
	<a data-t="mp3" href="#" onClick="baidu.event.preventDefault(event)" hidefocus="true">MP3</a>
	<a data-t="video" href="#" onClick="baidu.event.preventDefault(event)" hidefocus="true">视频</a>
	<a data-t="image" href="#" onClick="baidu.event.preventDefault(event)" hidefocus="true">图片</a>
	<a data-t="tieba" href="#" onClick="baidu.event.preventDefault(event)" hidefocus="true">贴吧</a>
	<a data-t="zhidao" href="#" onClick="baidu.event.preventDefault(event)" hidefocus="true">知道</a>
	<a data-t="news" href="#" onClick="baidu.event.preventDefault(event)" hidefocus="true">新闻</a>
	<a data-t="map" href="#" onClick="baidu.event.preventDefault(event)" hidefocus="true">地图</a>
	<div class="box-search_more">
		<a id="searchGroupMoreTab" data-t="more" href="#" onClick="baidu.event.preventDefault(event)" hidefocus="true">更多</a>
	</div>
</dt>


写的phpQuery代码如下:

<?php
require('phpQuery/phpQuery.php');
//对数据进行编码转换
function array_iconv($data, $input = 'gbk', $output = 'utf-8') {
	if (!is_array($data)) {
		return iconv($input, $output, $data);
	} else {
		foreach ($data as $key=>$val) {
			if(is_array($val)) {
				$data[$key] = array_iconv($val, $input, $output);
			} else {
				$data[$key] = iconv($input, $output, $val);
			}
		}
		return $data;
	}
}


//例子一:获取hao123中的
$html = file_get_contents('http://www.hao123.com');
$html = array_iconv($html); //转码
phpQuery::newDocumentHTML($html); //初始化,读取html源码
$match = pq('#searchGroupTabs > a'); 
echo($match);

/*
输出
<a class="cur" data-t="web" href="#" onclick="baidu.event.preventDefault(event)" hidefocus="true">网页</a><a data-t="mp3" href="#" onclick="baidu.event.preventDefault(event)" hidefocus="true">MP3</a><a data-t="video" href="#" onclick="baidu.event.preventDefault(event)" hidefocus="true">视频</a><a data-t="image" href="#" onclick="baidu.event.preventDefault(event)" hidefocus="true">图片</a><a data-t="tieba" href="#" onclick="baidu.event.preventDefault(event)" hidefocus="true">贴吧</a><a data-t="zhidao" href="#" onclick="baidu.event.preventDefault(event)" hidefocus="true">知道</a><a data-t="news" href="#" onclick="baidu.event.preventDefault(event)" hidefocus="true">新闻</a><a data-t="map" href="#" onclick="baidu.event.preventDefault(event)" hidefocus="true">地图</a>
*/
?>


例子一使用的 pq('#searchGroupTabs > a'); 和jQuery中是非常的类似。

phpQuery还有其它方法,以后介绍

phpQuery下载 : http://code.google.com/p/phpquery/

待续....

 

上一篇: php获取百度关键词查询结果总数   |   下一篇:扒谱,扒站,扒特效,扒数据,扒工具.....» 标签: php函数 phpquery

评论:

2012-08-14 11:52

谢谢了。
学采集时遇到些问题

2012-08-07 08:55

这个使用很不错哈