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相關資料,用法基本一致,只須要注意.與->的區別便可。

相關文章
相關標籤/搜索