PHP 爬虫——QueryList

 

 

前言:css

来了个任务说要作个电影网站,要写个壳,数据直接从别人那扒。行吧!那就要学习下PHP爬虫了。占个博客,之后补充。http://study.querylist.cc/archives/6/html

 

以前开发抓取网页上的东西,无非就是curl+正则。用curl去请求所要扒取的页面,而后经过正则匹配去提取你所须要的内容。数组

 

可是查了下如今PHP爬虫能够经过使用QueryList来实现。能够经过CSS的DOM选择器来实现。浏览器

 

特性:网络

  • 拥有与jQuery彻底相同的CSS3 DOM选择器
  • 拥有与jQuery彻底相同的DOM操做API
  • 拥有通用的列表采集方案
  • 拥有强大的HTTP请求套件,轻松实现如:模拟登录、伪造浏览器、HTTP代理等意复杂的网络请求
  • 拥有乱码解决方案
  • 拥有强大的内容过滤功能,可以使用jQuey选择器来过滤内容
  • 拥有高度的模块化设计,扩展性强
  • 拥有富有表现力的API
  • 拥有高质量文档
  • 拥有丰富的插件
  • 拥有专业的问答社区和交流群

内容:

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还有提供了许多深层的方法,后面能够在进行测试使用。主要是进行了简易的采集,获取了所需的数据,电影网也足够了

 

结语:离职的最后一天,你会作些什么?

相关文章
相关标签/搜索