`
天梯梦
  • 浏览: 13632492 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

phpQuery—基于jQuery的PHP实现

阅读更多

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。

>>QueryPath, php上的jQuery

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    php爬虫采集类-phpQuery:支持抓取网站,非常强大的php类库

    phpQuery支持抓取网站,进行爬虫,非常强大,是一个基于PHP的服务端开源项目,它可以让PHP开发人员轻松处理DOM文档内容,比如获取某新闻网站的头条信息。更有意思的是,它采用了jQuery的思想,你可以像使用jQuery一样...

    phpQuery.php

    php爬虫类phpQuery是一个基于PHP的服务端开源项目,它可以让PHP开发人员轻松处理DOM文档内容。更有意思的是,它采用了jQuery的思想,使得可以像使用jQuery一样处理页面内容,获取想要的页面信息。

    phpQuery强大的采集器

    phpQuery是一个基于PHP的服务端开源项目,它可以让PHP开发人员轻松处理DOM文档内容。更有意思的是,它采用了jQuery的思想,使得可以像使用jQuery一样处理页面内容,获取想要的页面信息。

    php爬虫采集类-phpQuery:支持抓取网站,非常强大的php类库.zip

    phpQuery支持抓取网站,进行爬虫,非常强大,是一个基于PHP的服务端开源项目,它可以让PHP开发人员轻松处理DOM文档内容,比如获取某新闻网站的头条信息。更有意思的是,它采用了jQuery的思想,你可以像使用jQuery一样...

    phpQuery强大的php采集类库v1.0

    phpQuery是一个基于PHP的服务端开源项目,它可以让PHP开发人员轻松处理DOM文档内容,比如获取某新闻网站的头条信息。更有意思的是,它采用了jQuery的思想,你可以像使用jQuery一样处理页面内容,获取你想要的页面...

    phpQuery源码

    phpQuery是一个基于PHP的服务端开源项目,它可以让PHP开发人员轻松处理DOM文档内容。它采用了jQuery的思想,你可以像使用jQuery一样处理页面内容,获取你想要的页面信息。

    phpquery类

    php爬虫类phpqueryphpQuery是一个基于PHP的服务端开源项目,它可以让PHP开发人员轻松处理DOM文档内容。更有意思的是,它采用了jQuery的思想,使得可以像使用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采集网页的方法

    phpQuery是一个基于PHP的服务端开源项目,它可以让PHP开发人员轻松处理DOM文档内容,比如获取某新闻网站的头条信息。更有意思的是,它采用了jQuery的思想,你可以像使用jQuery一样处理页面内容,获取你想要的页面...

    phpQuery采集网页实现代码实例

    phpQuery是基于php5新添加的DOMDocument。而DOMDocument则是专门用来处理html/xml。它提供了强大的xpath选择器及其他很多html/xml操作函数,使得处理html/xml起来非常方便。 尤其对于新手,看到一堆”不知所云”的...

    php-image-crawler:简单的图像爬虫下载器。 抓取图像标签并使用 php 和 phpquery 下载它们

    phpQuery 是基于 jQuery JavaScript 库的服务器端、可链接、CSS3 选择器驱动的文档对象模型 (DOM) API。 有关 phpquery 的更多信息,请查看下面的链接。 示例:抓取图片标签并从 bukalapak.com 和 tokopedia.com ...

    jQuery插件jPaginate实现无刷新分页

    jPaginate是基于jQuery的动感滚动分页插件,它的表现形式是像分页的按钮一样,非常有意思的是这些按钮却可以滚动,可以通过单击或鼠标滑向点两侧的小箭头来控制按钮的前后滚动。 PHP读取第一页数据: &lt;?php ...

    jQuery .tmpl() 用法示例介绍

    解决 PHP 拼数据这方面的问题而有了 Smarty 这些模版,JavaScript 也可以利用模版来解决这些问题,比如基于 jQuery 的 jquery.tmpl

    强大的php采集类库 v1.0

    phpQuery是一个基于PHP的服务端开源项目,它可以让PHP开发人员轻松处理DOM文档内容,比如获取某新闻网站的头条信息。更有意思的是,它采用了jQuery的思想,你可以像使用jQuery一样处理页面内容,获取你想要的页面...

    基于bootstrap插件实现autocomplete自动完成表单

    基于bootstrap插件实现autocomplete自动完成表单,提供脚本代码,用例,以及后台服务端(php), 原文有些没说清楚的地方,希望能帮助大家. 首先肯定还是加载bootstrap&jquery了,需要额外说明的是,后端返回的二维数组,...

    QueryList采集类库

    QueryList|基于phpQuery的无比强大的PHP采集工具。 QueryList的出现让PHP做采集从未如此简单。得益于phpQuery,让使用QueryList几乎没有任何学习成本,只要会CSS3选择器就可以轻松使用QueryList了,和jQuery选择器...

    phP的抓取网站类库.zip

    require("phpQuery.php"); $hj = QueryList::Query('http://mobile.csdn.net/',array("title"=&gt;array('.unit h1','text'))); //dump($hj-&gt;data); $data = QueryList::Query('...

    QueryList:渐进式PHP搜寻器框架!优雅的渐进式PHP采集框架

    QueryList是基于phpQuery的简单,优雅,可扩展PHP Web Scraper(爬虫/蜘蛛)。 特征 与jQuery具有相同CSS3 DOM选择器 具有与jQuery相同的DOM操作API 有一个通用的列表搜寻程序 拥有强大的HTTP请求套件,易于实现,...

    QueryList采集类库.zip

    QueryList|基于phpQuery的无比强大的PHP采集工具。 QueryList的出现让PHP做采集从未如此简单。得益于phpQuery,让使用QueryList几乎没有任何学习成本,只要会CSS3选择器就可以轻松使用QueryList了,和jQuery...

    QueryList_v3_v4.zip

    QueryList是一个基于phpQuery的PHP通用列表采集类,得益于phpQuery,让使用QueryList几乎没有任何学习成本,只要会CSS3选择器就可以轻松使用QueryList了,它让PHP做采集像jQuery选择元素一样简单。 需要注意的是: ...

Global site tag (gtag.js) - Google Analytics