laravel中使用PHPQuery实现网页采集

因为没有PHPQuery的composer包安装因此须要咱们手动在咱们的laravel项目中安装加载PHPQuery,这里须要设置laravel的autoload->class map。php

一、首先在app目录下建立一个新的文件夹,命名libs(可自定义),在libs下再建立一个phpQuery文件夹html

二、找到根目录下的composer.json文件jquery

三、找到composer.json中定义的laravel

"autoload": {  
        "classmap": [  
            "database",  
            "app/libs/phpQuery" //加上 
        ],  
        "psr-4": {  
            "App\\": "app/"  
        }  
    }, 

四、运行终端,cd到项目路径,执行json

composer dumpautoload  

 而后就能在项目中愉快的使用phpQuery了,简单的用法以下:服务器

use phpQuery; 

五、PHPQuery的使用app

载入文档(loading documents)composer

加载文档主要经过phpQuery::newDocument来进行操做,其做用是使得phpQuery能够在服务器预先读取到指定的文件或文本内容。函数

主要的方法包括:.net

phpQuery::newDocument($html, $contentType = null)

phpQuery::newDocumentFile($file, $contentType = null)

phpQuery::newDocumentHTML($html, $charset = ‘utf-8′)

phpQuery::newDocumentXHTML($html, $charset = ‘utf-8′)

phpQuery::newDocumentXML($html, $charset = ‘utf-8′)

phpQuery::newDocumentPHP($html, $contentType = null)

phpQuery::newDocumentFileHTML($file, $charset = ‘utf-8′)

phpQuery::newDocumentFileXHTML($file, $charset = ‘utf-8′)

phpQuery::newDocumentFileXML($file, $charset = ‘utf-8′)

phpQuery::newDocumentFilePHP($file, $contentType) 

 

pq()函数用法

pq()函数的用法是phpQuery的重点,主要分两部分:即选择器和过滤器

【选择器】

要了解phpQuery选择器的用法,建议先了解jQuery的语法

最经常使用的语法包括有:

pq('#id'):即以#号开头的ID选择器,用于选择已知ID的容器所包括的内容

pq('.classname'):即以.开头的class选择器,用于选择class匹配的容器内容

pq('parent > child'):选择指定层次结构的容器内容,如:pq('.main > p')用于选择class=main容器的全部p标签

更多的语法请参考jQuery手册

【过滤器】

主要包括::first,:last,:not,:even,:odd,:eq(index),:gt(index),:lt(index),:header,:animated等

如:

pq('p:last'):用于选择最后一个p标签

pq('tr:even'):用于选择表格中偶然行

 

phpQuery连贯操做

pq()函数返回的结果是一个phpQuery对象,能够对返回结果继续进行后续的操做,例如:

 pq('a')->attr('href', 'newVal')->removeClass('className')->html('newHtml')->...

详情请查阅jQuery相关资料,用法基本一致,只须要注意.与->的区别便可。

相关文章
相关标签/搜索