Query的选择器之强大是有目共睹的,phpQuery
让php也拥有了这样的能力,它就相当于服务端的jQuery。
先来看看官方简介:
phpQuery is a server-side, chainable, CSS3
selector driven Document Object Model (DOM) API based on jQuery
JavaScript Library.
Library is written in PHP5 and provides
additional Command Line Interface (CLI).
存在的意义
我们有时需要抓取一个网页的内容,但只需要特定部分的信息,通常会用正则来解决,这当然没有问题。正则是一个通用解决方案,但特定情况下,往往有更简单快
捷的方法。比如你想查询一个编程方面的问题,当然可以使用Google,但stackoverflow
作为一个专业的编程问答社区,会提供给你更多,更靠谱的答案。
对于html页面,不应该使用正则的原因主要有3个
1、编写条件表达式比较麻烦
尤其对于新手,看到一堆”不知所云”的字符评凑在一起,有种脑袋都要炸了的感觉。如果要分离的对象没有太明显的特征,正则写起来更是麻烦。
2、效率不高
对于php来说,正则应该是没有办法的办法,能通过字符串函数解决的,就不要劳烦正则了。用正则去处理一个30多k的文件,效率不敢保证。
3、有phpQuery
如果你使用过jQuery,想获取某个特定元素应该是轻而易举的事情,phpQuery让这成为了可能。
浅析phpQuery
phpQuery是基于php5新添加的DOMDocument。而DOMDocument则是专门用来处理html/xml。它提供了强大xpath选
择器及其他很多html/xml操作函数,使得处理html/xml起来非常方便。那为什么不直接使用呢?这个,去看一下官网的函数列表
就知道了,如果对自己的记忆力很有信心,
不妨一试。
几个简单的例子
获取蓝色理想最热的招聘职位
<?
include 'phpQuery.php';
phpQuery::newDocumentFile('http://job.blueidea.com');
$companies = pq('#hotcoms .coms')->find('div');
foreach($companies as $company)
{
echo pq($company)->find('h3 a')->text()."<br>";
}
小结
-
pq()就像jQuery里的$()
-
基本上jQuery的选择器都可以用在phpQuery上,只要把’.'变成’->’
-
phpQuery提供了好几种载入文件的方法,有的使用字符串,有的使用文件(包括url),选
择的时候要注意
-
基本上这一页
就很能说明问题了
其他解析器
simplehtmldom
也是个不错的html解析器,使用起来也挺方便,是基
于正则的,所以没有phpQuery那么强大,如果没有太高的要求,也基本够用了。
yql
是yahoo出的一款使用类似SQL的语言,来获取相应的数据,也很强大,无须任何类
库,可以直接调用,支持xpath,如果对SQL语句比较熟悉的话,可以考虑yql。
分享到:
相关推荐
phpQuery支持抓取网站,进行爬虫,非常强大,是一个基于PHP的服务端开源项目,它可以让PHP开发人员轻松处理DOM文档内容,比如获取某新闻网站的头条信息。更有意思的是,它采用了jQuery的思想,你可以像使用jQuery一样...
php爬虫类phpQuery是一个基于PHP的服务端开源项目,它可以让PHP开发人员轻松处理DOM文档内容。更有意思的是,它采用了jQuery的思想,使得可以像使用jQuery一样处理页面内容,获取想要的页面信息。
phpQuery是一个基于PHP的服务端开源项目,它可以让PHP开发人员轻松处理DOM文档内容。更有意思的是,它采用了jQuery的思想,使得可以像使用jQuery一样处理页面内容,获取想要的页面信息。
phpQuery支持抓取网站,进行爬虫,非常强大,是一个基于PHP的服务端开源项目,它可以让PHP开发人员轻松处理DOM文档内容,比如获取某新闻网站的头条信息。更有意思的是,它采用了jQuery的思想,你可以像使用jQuery一样...
phpQuery是一个基于PHP的服务端开源项目,它可以让PHP开发人员轻松处理DOM文档内容,比如获取某新闻网站的头条信息。更有意思的是,它采用了jQuery的思想,你可以像使用jQuery一样处理页面内容,获取你想要的页面...
phpQuery是一个基于PHP的服务端开源项目,它可以让PHP开发人员轻松处理DOM文档内容。它采用了jQuery的思想,你可以像使用jQuery一样处理页面内容,获取你想要的页面信息。
php爬虫类phpqueryphpQuery是一个基于PHP的服务端开源项目,它可以让PHP开发人员轻松处理DOM文档内容。更有意思的是,它采用了jQuery的思想,使得可以像使用jQuery一样处理页面内容,获取想要的页面信息。
使用了新的jQuery内部Ajax API就可以实现下面的代码了: // Assign handlers immediately after making the request, // and remember the jxhr object for this request var jxhr = $.ajax({ url: "example.php" })...
phpQuery是一个基于PHP的服务端开源项目,它可以让PHP开发人员轻松处理DOM文档内容,比如获取某新闻网站的头条信息。更有意思的是,它采用了jQuery的思想,你可以像使用jQuery一样处理页面内容,获取你想要的页面...
phpQuery是基于php5新添加的DOMDocument。而DOMDocument则是专门用来处理html/xml。它提供了强大的xpath选择器及其他很多html/xml操作函数,使得处理html/xml起来非常方便。 尤其对于新手,看到一堆”不知所云”的...
phpQuery 是基于 jQuery JavaScript 库的服务器端、可链接、CSS3 选择器驱动的文档对象模型 (DOM) API。 有关 phpquery 的更多信息,请查看下面的链接。 示例:抓取图片标签并从 bukalapak.com 和 tokopedia.com ...
jPaginate是基于jQuery的动感滚动分页插件,它的表现形式是像分页的按钮一样,非常有意思的是这些按钮却可以滚动,可以通过单击或鼠标滑向点两侧的小箭头来控制按钮的前后滚动。 PHP读取第一页数据: <?php ...
解决 PHP 拼数据这方面的问题而有了 Smarty 这些模版,JavaScript 也可以利用模版来解决这些问题,比如基于 jQuery 的 jquery.tmpl
phpQuery是一个基于PHP的服务端开源项目,它可以让PHP开发人员轻松处理DOM文档内容,比如获取某新闻网站的头条信息。更有意思的是,它采用了jQuery的思想,你可以像使用jQuery一样处理页面内容,获取你想要的页面...
基于bootstrap插件实现autocomplete自动完成表单,提供脚本代码,用例,以及后台服务端(php), 原文有些没说清楚的地方,希望能帮助大家. 首先肯定还是加载bootstrap&jquery了,需要额外说明的是,后端返回的二维数组,...
QueryList|基于phpQuery的无比强大的PHP采集工具。 QueryList的出现让PHP做采集从未如此简单。得益于phpQuery,让使用QueryList几乎没有任何学习成本,只要会CSS3选择器就可以轻松使用QueryList了,和jQuery选择器...
require("phpQuery.php"); $hj = QueryList::Query('http://mobile.csdn.net/',array("title"=>array('.unit h1','text'))); //dump($hj->data); $data = QueryList::Query('...
QueryList是基于phpQuery的简单,优雅,可扩展PHP Web Scraper(爬虫/蜘蛛)。 特征 与jQuery具有相同CSS3 DOM选择器 具有与jQuery相同的DOM操作API 有一个通用的列表搜寻程序 拥有强大的HTTP请求套件,易于实现,...
QueryList|基于phpQuery的无比强大的PHP采集工具。 QueryList的出现让PHP做采集从未如此简单。得益于phpQuery,让使用QueryList几乎没有任何学习成本,只要会CSS3选择器就可以轻松使用QueryList了,和jQuery...
QueryList是一个基于phpQuery的PHP通用列表采集类,得益于phpQuery,让使用QueryList几乎没有任何学习成本,只要会CSS3选择器就可以轻松使用QueryList了,它让PHP做采集像jQuery选择元素一样简单。 需要注意的是: ...