PHP 爬蟲——QueryList


 

 

前言:

來了個任務說要做個電影網站,要寫個殼,數據直接從別人那扒。行吧!那就要學習下PHP爬蟲了。占個博客,以后補充。http://study.querylist.cc/archives/6/

 

之前開發抓取網頁上的東西,無非就是curl+正則。用curl去請求所要扒取的頁面,然后通過正則匹配去提取你所需要的內容。

 

但是查了下現在PHP爬蟲可以通過使用QueryList來實現。可以通過CSS的DOM選擇器來實現。

 

特性:

  • 擁有與jQuery完全相同的CSS3 DOM選擇器
  • 擁有與jQuery完全相同的DOM操作API
  • 擁有通用的列表采集方案
  • 擁有強大的HTTP請求套件,輕松實現如:模擬登陸、偽造瀏覽器、HTTP代理等意復雜的網絡請求
  • 擁有亂碼解決方案
  • 擁有強大的內容過濾功能,可使用jQuey選擇器來過濾內容
  • 擁有高度的模塊化設計,擴展性強
  • 擁有富有表現力的API
  • 擁有高質量文檔
  • 擁有豐富的插件
  • 擁有專業的問答社區和交流群

內容:

因為要做一個電影網站,所以這次利用QueryList來爬取電影網資源,這次爬取的是——玩的嗨TV, 網址:http://tv.wandhi.com/movielist/all/3.html。

首先,選取這網站主要是它是個解析站,去破解各大網站的電影資源供給觀看,建站也比較簡易,沒有啥限制防盜鏈啥的。當然所能爬取到的資源也比較少,也主要是電影播放資源豐富吧。

主要爬取....(采集好像比較好聽點)。本次主要采集了玩的嗨TV的電影列表頁面和電影播放頁面。

 

安裝:

安裝QueryList相當的簡單,打開項目目錄,運行compose命令進行安裝

composer require jaeger/guerylist

(注意點 PHP版本需要在7.0以上)

在控制器中引入相應的類就可以開始使用了

use QL\QueryList;

 

使用:

先貼個小代碼

  /**
     * 采集電影首頁
     */
    public function film_list($page = 1){
        $path = '/movielist/all/'.$page.'.html';
        $rules = [
            'link' => ['.lazy', 'href'],
            'img' => ['.title>h5>a', 'src'],
            'name' => ['.lazy', 'title'],
            'score' => ['.score', 'html'],
            'actor' => ['.subtitle', 'html'],
        ];
        $data = QueryList::Query($this->url . $path, $rules)->data;
        return $data;
    }

從代碼中可以很清楚的看出,使用QueryList的Query方法,參數為采集地址和采集規則。

采集地址就是你所要采集頁面的網址。

采集規則是一個數組,結構“名字”=>[“css DOM選擇器”,‘DOM屬性’];

這樣就可以采集到頁面數據。

1、電影列表頁面

頁面結構如下:

 

 爬取結果:

 

 2、電影播放頁面

頁面結構:

主要采集這兩個數據進行拼接就能獲得視頻的播放地址。

采集結果:

對數據進行拼接就可以獲得視頻播放地址。

 

總結:這次采集相對簡單。QueryList還有提供了許多深層的方法,后面可以在進行測試使用。主要是進行了簡易的采集,獲取了所需的數據,電影網也足夠了

 

結語:離職的最后一天,你會做些什么?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM