• laravel中使用PHPQuery实现网页采集


    由于没有PHPQuery的composer包安装所以需要我们手动在我们的laravel项目中安装加载PHPQuery,这里需要设置laravel的autoload->class map。

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

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

    3、找到composer.json中定义的

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

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

    composer dumpautoload  
    

     然后就能在项目中愉快的使用phpQuery了,简单的用法如下:

    use phpQuery; 
    

    5、PHPQuery的使用

    载入文档(loading documents)

    加载文档主要通过phpQuery::newDocument来进行操作,其作用是使得phpQuery可以在服务器预先读取到指定的文件或文本内容。

    主要的方法包括:

    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相关资料,用法基本一致,只需要注意.与->的区别即可。

  • 相关阅读:
    总结一下矩阵的基本操作
    洛谷|P4281 [AHOI2008]紧急集合 / 聚会
    CQYZ OJ|Contest 133|祖孙询问
    博客主题分享
    USACO1.1|黑色星期五Friday the Thirteenth
    USACO1.1.2|贪婪的送礼者
    POJ1664|DFS水题
    树状数组的区间查询与区间修改
    N0lP2018爆零记录
    A了一道dijkstra板子
  • 原文地址:https://www.cnblogs.com/blog-dyn/p/6638515.html
Copyright © 2020-2023  润新知