TP5框架使用QueryList采集框架爬小说操作示例


Posted in PHP onMarch 26, 2020

本文实例讲述了TP5框架使用QueryList采集框架爬小说操作。分享给大家供大家参考,具体如下:

最近想写一个小说网站,就去搜资料,搜出来TP5可以使用QueryList采集框架去爬小说,这里我来给大家详解如何用QueryList去爬小说。
#首先应该下载TP5框架,然后在extend里面建立一个文件夹命名为QL,再去官网下载QueryList,然后把phpQuery.php 和 QueryList.php 两个文件放在QL文件夹下,如图:
TP5框架使用QueryList采集框架爬小说操作示例
##在QueryList.php里面加上命名空间:

namespace QL;
require ‘phpQuery.php';

use phpQuery,Exception,ReflectionClass;
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Iterator,Countable,ArrayAccess;//使用phpQuuery接口

#准备工作做好了下来开始采集小说(我们这里以https://www.17k.com/这个网站的免费小说为例)

##先找到你要采集的小说的目录页面的url作为采集url

##再在url前面加上 view-source: 查看他的源码,找到包含所有章节url的class属性,写好采集规则,执行语句进行采集

##采集他的章节名和每一章节的url,因为url采集下来没有域名,需要用正则表达式加上https://www.17k.com 然后采用for循环去一个一个采集每一章节的内容

##最后再将采集到的章节名与章节内容存入数据库

直接上代码:

<?php
namespace app\index\Controller;
use think\Controller;
use QL\QueryList;
 
class Xiaoshuo extends Controller
{
  public function index()
  {
    //采集目标
    //$url = 'https://www.17k.com/list/3032846.html?offset=';
     $url = 'https://www.17k.com/list/3041226.html?offset=';
    //采集规则
    $rules = array(
          'title'=>array('.ellipsis','text'),//获取书每个章节名
          'link'=>array('.Volume a','href','-.folding -copy -a'),//获取每个章节链接
        );
    //开始采集
    $data = QueryList::Query($url,$rules)->data;
    //var_dump($data);
    //求数组长度
     $j = count($data);
    if($data)
    {
      for($i=0;$i<=$j-1;$i++)
      {
       $values = ['title'=>$data[$i]['title'],'link'=>$data[$i+1]['link']];
       $_POST['url']=$data[$i+1]['link'];
       if (!preg_match("/^(http|ftp):/", $_POST['url']))//给链接加上域名头
        {
         $url1 = 'https://www.17k.com'.$_POST['url'];
        }
       $rules1 = array(
          'novel'=>array('.p','text','-li -a'),
          );
       $data1 = QueryList::Query($url1,$rules1)->data;
       //var_dump($data1);
       $values1 = ['title'=>$data[$i]['title'],'novel'=>$data1[0]['novel']];//将章节名、内容插入数据库
       $data2 = \think\Db::name('novel6')->insert($values1); 
      }
    }
    
  }
}

我们来打印一下他的章节名和章节内容:
TP5框架使用QueryList采集框架爬小说操作示例TP5框架使用QueryList采集框架爬小说操作示例注:1.class属性一定要找对
2.采集下来 $data 的第一个数组的link不是第一章的url,下一个才是第一章的,所以 data[ data[" role="presentation" style="position: relative;">data[i+1][‘link'] 是他第i章的url

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php基础知识:类与对象(5) static
Dec 13 PHP
php 生成饼图 三维饼图
Sep 28 PHP
PHP内核探索:变量概述
Jan 30 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
May 15 PHP
php中session与cookie的比较
Jan 27 PHP
PHP内核学习教程之php opcode内核实现
Jan 27 PHP
Smarty模板变量调节器用法分析
May 23 PHP
Yii2框架数据库简单的增删改查语法小结
Aug 31 PHP
php图像处理函数imagecopyresampled用法详解
Dec 02 PHP
PHP封装返回Ajax字符串和JSON数组的方法
Feb 17 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
May 31 PHP
微信公众平台开发教程⑤ 微信扫码支付模式介绍
Apr 10 PHP
PHP实现基本留言板功能原理与步骤详解
Mar 26 #PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
Mar 26 #PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
Mar 26 #PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
Mar 24 #PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
Mar 24 #PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
Mar 24 #PHP
php设计模式之原型模式分析【星际争霸游戏案例】
Mar 23 #PHP
You might like
linux php mysql数据库备份实现代码
2009/03/10 PHP
领悟php接口中interface存在的意义
2013/06/27 PHP
PHP中unset,array_splice删除数组中元素的区别
2014/07/28 PHP
Nginx服务器上安装并配置PHPMyAdmin的教程
2015/08/18 PHP
PHP转换文本框内容为HTML格式的方法
2016/07/20 PHP
js open() 与showModalDialog()方法使用介绍
2013/09/10 Javascript
深入解读JavaScript中的Iterator和for-of循环
2015/07/28 Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
2016/05/19 Javascript
JavaScript编写带旋转+线条干扰的验证码脚本实例
2016/05/30 Javascript
Javascript删除指定元素节点的方法
2016/06/21 Javascript
JavaScript提高网站性能优化的建议(二)
2016/07/24 Javascript
NodeJS测试框架mocha入门教程
2017/03/28 NodeJs
JS+html5制作简单音乐播放器
2020/09/13 Javascript
web前端vue实现插值文本和输出原始html
2018/01/19 Javascript
vue自定义底部导航栏Tabbar的实现代码
2018/09/03 Javascript
详解vue-cli3多页应用改造
2019/06/04 Javascript
[01:26]神话结束了,却也刚刚开始——DOTA2新英雄玛尔斯驾临战场
2019/03/10 DOTA
[45:16]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第一场 12.12
2020/12/16 DOTA
Python中的闭包详细介绍和实例
2014/11/21 Python
python编程培训 python培训靠谱吗
2018/01/17 Python
1分钟快速生成用于网页内容提取的xslt
2018/02/23 Python
Flask框架实现的前端RSA加密与后端Python解密功能详解
2019/08/13 Python
详解Python利用random生成一个列表内的随机数
2019/08/21 Python
使用python批量修改XML文件中图像的depth值
2020/07/22 Python
python调用私有属性的方法总结
2020/07/24 Python
Herve Leger官网:标志性绷带连衣裙等
2018/12/26 全球购物
P D PAOLA意大利官网:西班牙著名的珠宝首饰品牌
2019/09/24 全球购物
建设投标担保书
2014/05/13 职场文书
小学语文教学经验交流材料
2014/06/02 职场文书
学校安全工作汇报材料
2014/08/16 职场文书
委托书怎样写
2014/08/30 职场文书
教师党员群众路线教育实践活动心得体会
2014/11/04 职场文书
大班下学期幼儿评语
2014/12/30 职场文书
2015年消费者权益日活动总结
2015/02/09 职场文书
2016年社会管理综治宣传月活动总结
2016/03/16 职场文书
创业计划书之健康营养产业
2019/10/15 职场文书