爬虫是我一直以来跃跃欲试的技术,现在的爬虫框架很多,比较流行的是基于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-