前言:css
來了個任務說要作個電影網站,要寫個殼,數據直接從別人那扒。行吧!那就要學習下PHP爬蟲了。佔個博客,之後補充。http://study.querylist.cc/archives/6/html
以前開發抓取網頁上的東西,無非就是curl+正則。用curl去請求所要扒取的頁面,而後經過正則匹配去提取你所須要的內容。數組
可是查了下如今PHP爬蟲能夠經過使用QueryList來實現。能夠經過CSS的DOM選擇器來實現。瀏覽器
特性:網絡
內容:
composer
由於要作一個電影網站,因此此次利用QueryList來爬取電影網資源,此次爬取的是——玩的嗨TV, 網址:http://tv.wandhi.com/movielist/all/3.html。curl
首先,選取這網站主要是它是個解析站,去破解各大網站的電影資源供給觀看,建站也比較簡易,沒有啥限制防盜鏈啥的。固然所能爬取到的資源也比較少,也主要是電影播放資源豐富吧。模塊化
主要爬取....(採集好像比較好聽點)。本次主要採集了玩的嗨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屬性’];
這樣就能夠採集到頁面數據。
一、電影列表頁面
頁面結構以下:
爬取結果:
二、電影播放頁面
頁面結構:
主要採集這兩個數據進行拼接就能得到視頻的播放地址。
採集結果:
對數據進行拼接就能夠得到視頻播放地址。
總結:此次採集相對簡單。QueryList還有提供了許多深層的方法,後面能夠在進行測試使用。主要是進行了簡易的採集,獲取了所需的數據,電影網也足夠了
結語:離職的最後一天,你會作些什麼?