纵有疾风起
人生不言弃

PHP简单爬虫 基于QueryList采集库 和 ezsql数据库操作类

QueryList是一个基于phpQuery的PHP通用列表采集类,得益于phpQuery,让使用QueryList几乎没有任何学习成本,只要会CSS3选择器就可以轻松使用QueryList了,它让PHP做采集像jQuery选择元素一样简单。

官方地址:https://querylist.cc/

ezSQL PHP 是用php开发的一套轻量级的数据库类,这个数据库类占用服务器资源小,代码简洁,同时支持多种数据库的使用,安全性高。

下载地址:sjolzy.cn/php/ezSQL/bak/ez_sql_2.05.zip

搭建一个简单的框架目录结构:

PHP简单爬虫 基于QueryList采集库 和 ezsql数据库操作类插图

db里放得是ezsql类相关文件

lib里放得是querylist相关文件

index.php 为主程序

 

以采集猫眼电影TOP100为例代码如下:

index.php

<?phprequire 'lib/phpQuery.php';require 'lib/QueryList.php';require "db/shared/ez_sql_core.php";  require "db/mysql/ez_sql_mysql.php";  use QL\QueryList;//抓取猫眼电影TOP100榜单内容 $db = new ezSQL_mysql('root', 'root', 'spider', 'localhost');  $offset=0;for($i=0;$i<10;$i++){    $gurl="http://maoyan.com/board/4?offset=".$offset;    // echo $gurl.PHP_EOL;    $rules = array(        //采集id为one这个元素里面的纯文本内容        'url' => array('.movie-item-info .name a','href','',function($content){            return 'http://maoyan.com'.$content;        }),//链接    );    $data = QueryList::Query($gurl,$rules)->data;    // print_r($data);    foreach ($data as $key => $val) {        getContents($db,$val['url']);    }    $offset+=10;    echo "".($i+1)."页完成".PHP_EOL;}//取电影内容 传入内容页的链接地址 function getContents($db,$url){    $rules = array(        //采集id为one这个元素里面的纯文本内容        'name' => array('.movie-brief-container .name','text'),//电影名        'ename' => array('.movie-brief-container .ename','text','',function($content){            return str_replace("'","\'",$content);        }),//英文名         'type' => array('.movie-brief-container ul li:eq(0)','text'),//电影类型        'area' => array('.movie-brief-container ul li:eq(1)','text','',function($content){            return trim(explode("/", $content)[0]);        }),//产地        'timelen' => array('.movie-brief-container ul li:eq(1)','text','',function($content){            return trim(explode("/", $content)[1]);        }),//片长             'addtime' => array('.movie-brief-container ul li:eq(2)','text','',function($content){            return substr($content,0,10);        }),//上映时间        'addarea' => array('.movie-brief-container ul li:eq(2)','text','',function($content){            return substr($content,10);        }),//上映地点    );    $data = QueryList::Query($url,$rules)->data;    print_r($data);    $name=$data[0]["name"];    $ename=$data[0]["ename"];    $area=$data[0]["area"];    $type=$data[0]["type"];    $timelen=$data[0]["timelen"];    $addtime=$data[0]["addtime"];    $addarea=$data[0]["addarea"];    $db->query("INSERT INTO maoyan (name, ename,type,area,timelen,addtime,addarea)         VALUES ('$name','$ename','$area','$type','$timelen','$addtime','$addarea')");}

 

 采集的结果:

PHP简单爬虫 基于QueryList采集库 和 ezsql数据库操作类插图1

 项目下载:https://files.cnblogs.com/files/wordblog/spider.rar

文章转载于:https://www.cnblogs.com/wordblog/p/9194119.html

原著是一个有趣的人,若有侵权,请通知删除

未经允许不得转载:起风网 » PHP简单爬虫 基于QueryList采集库 和 ezsql数据库操作类
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录