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 相关文章推荐
通过html表格发电子邮件
Oct 09 PHP
php 在线打包_支持子目录
Jun 28 PHP
PHP通过header实现文本文件下载的代码
Aug 08 PHP
修改PHP的memory_limit限制的方法分享
Feb 21 PHP
PHP引用符&amp;的用法详细解析
Aug 22 PHP
php获取网页请求状态程序示例
Jun 17 PHP
php基于socket实现SMTP发送邮件的方法
Mar 05 PHP
php文件下载处理方法分析
Apr 22 PHP
php注册登录系统简化版
Dec 28 PHP
php项目开发中用到的快速排序算法分析
Jun 25 PHP
Eclipse PHPEclipse 配置的具体步骤
Aug 08 PHP
PHP生成图表pChart的示例解析
Jul 31 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
php+iframe实现隐藏无刷新上传文件
2012/02/10 PHP
php格式化金额函数分享
2015/02/02 PHP
PHP实现仿Google分页效果的分页函数
2015/07/29 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
2016/03/22 PHP
PHP date()格式MySQL中插入datetime方法
2019/01/29 PHP
PHP中上传文件打印错误错误类型分析
2019/04/14 PHP
laravel 框架实现无限级分类的方法示例
2019/10/31 PHP
用JavaScrpt实现文件夹简单轻松加密的实现方法图文
2008/09/08 Javascript
JS中实现replaceAll的方法(实例代码)
2013/11/12 Javascript
巧用replace将文字表情替换为图片
2014/04/17 Javascript
使用不同的方法结合/合并两个JS数组
2014/09/18 Javascript
Jquery的基本对象转换和文档加载用法实例
2015/02/25 Javascript
用JS写的一个Ajax库(实例代码)
2016/08/06 Javascript
JS中用try catch对代码运行的性能影响分析
2016/12/26 Javascript
React Router基础使用
2017/01/17 Javascript
React.js中常用的ES6写法总结(推荐)
2017/05/09 Javascript
vue如何获取点击事件源的方法
2017/08/10 Javascript
详解Vue快速零配置的打包工具——parcel
2018/01/16 Javascript
react中使用css的7中方式(最全总结)
2019/02/11 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
2020/02/15 Javascript
jQuery 选择器用法实例分析【prev + next】
2020/05/22 jQuery
Python中的jquery PyQuery库使用小结
2014/05/13 Python
简单介绍Python中利用生成器实现的并发编程
2015/05/04 Python
python中偏函数partial用法实例分析
2015/07/08 Python
Python Tkinter实现简易计算器功能
2018/01/30 Python
Python读取excel中的图片完美解决方法
2018/07/27 Python
Python 面向对象静态方法、类方法、属性方法知识点小结
2020/03/09 Python
解决keras,val_categorical_accuracy:,0.0000e+00问题
2020/07/02 Python
味多美官网:蛋糕订购,100%使用天然奶油
2017/11/10 全球购物
大学生蛋糕店创业计划书
2014/01/13 职场文书
大学生冰淇淋店商业计划书
2014/01/14 职场文书
2014第二批党的群众路线教育实践活动对照检查材料思想汇报
2014/09/18 职场文书
工商局局长个人对照检查材料思想汇报
2014/09/23 职场文书
作文评语集锦
2014/12/25 职场文书
高中班主任工作总结(范文)
2019/08/20 职场文书
了解MySQL查询语句执行过程(5大组件)
2022/08/14 MySQL