• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

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

db里放得是ezsql类相关文件

lib里放得是querylist相关文件

index.php 为主程序

 

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

index.php

<?php
require \'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\')");
}

 

 采集的结果:

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap