使用PHP+QueryList 爬取猫眼电影榜单信息

        爬虫是我一直以来跃跃欲试的技术,现在的爬虫框架很多,比较流行的是基于python,nodejs,java,C#的的框架,其中又以基于python的爬虫流行最为广泛,还有的已经是一套傻瓜式的软件操作,如八爪鱼,火车头等软件。

        很多php程序员,都在想使用php程序是否可以实现爬虫程序?

        今天我们首先尝试的是使用PHP结合QueryList实现一个爬虫程序,爬取猫眼电影榜单Top100。

1、安装 QueryList

        1.1 简介

                QueryList 是基于phpquery 发开的一个采集类

                phpquery是老外开发的,querylist对其进行了更加人性化的封装,更方便,从而充满生命力。

        1.2 注意:

  • 我们这里只介绍composer的安装,QueryList最新版本仅支持composer安装
  • 由于QueryList最新版本(4版本),要求PHP >=7.0,我们为了照顾广大低版本的读者,我们这里使用QueryList(3版本)。
  • Composer 相关内容到 composer官网

        1.3 安装

                1) 在windows 命令行切换到指定目录;

                2) 在指定目录下,运行如下命令,安装QueryList 3 ;

                        composer require jaeger/querylist:v3.2.0

2、爬取猫眼电影Top100榜(首页)

            2.1 代码实现

// 引入系统文件
include "vendor/autoload.php";

// 导入QueryList系统类
use \QL\QueryList;

// 爬取的地址
$url="http://maoyan.com/board/4";

// 爬取的规则
$reg=array(
    // 爬取图片地址
    "src"=>array(".board-wrapper dd img.board-img","data-src"),
    // 爬取电影名
    "name"=>array(".board-wrapper dd .movie-item-info .name","html"),
    // 爬取电影主演信息
    "star"=>array(".board-wrapper dd .movie-item-info .star","html"),
    // 爬取上映时间
    "releasetime"=>array(".board-wrapper dd .movie-item-info .releasetime","html"),
);

// 进行数据获取
$data=QueryList::Query($url,$reg)->data;

// 输出结果
print_r($data);

            2.2 实现结果

3、爬取猫眼电影Top100榜(全部)

        3.1 代码实现

                分析页面猫眼电影top100榜单,相关URL规律,实现爬取所有榜单全部数据。

<?php
// 引入系统文件
include "vendor/autoload.php";

// 导入系统类
use \QL\QueryList;

// 爬取的规则
$reg=array(
    // 爬取图片地址
    "src"=>array(".board-wrapper dd img.board-img","data-src"),
    // 爬取电影名
    "name"=>array(".board-wrapper dd .movie-item-info .name","html"),
    // 爬取电影主演信息
    "star"=>array(".board-wrapper dd .movie-item-info .star","html"),
    // 爬取上映时间
    "releasetime"=>array(".board-wrapper dd .movie-item-info .releasetime","html"),
);

// 爬取多个页面
for ($i=0; $i <10 ; $i++) { 
	
	$size=$i*10;
	// 爬取的地址
	$url="http://maoyan.com/board/4?offset=$size";
	// 进行爬取
	$data[]=QueryList::Query($url,$reg)->data;
}

// 输出数据
print_r($data);

        本文中介绍了PHP+QueryList 的基本使用,希望大家多加练习,欢迎大家一起谈论学习交流。

        学习地址

-THE END-

猜你喜欢

转载自blog.csdn.net/IT_czh/article/details/79880747