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完整的日历类(CLASS)
Nov 27 PHP
用PHP实现Ftp用户的在线管理
Feb 16 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
May 03 PHP
PHP写的资源下载防盗链类分享
May 12 PHP
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
Aug 18 PHP
php实现将数组转换为XML的方法
Mar 09 PHP
分享PHP函数实现数字与文字分页代码
Jul 28 PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
Dec 16 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
May 20 PHP
ThinkPHP实现图片上传操作的方法详解
May 08 PHP
PHP whois查询类定义与用法示例
Apr 03 PHP
PHP Cli 模式设置进程名称的方法
Jun 12 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 中英文语言转换类代码
2011/08/11 PHP
php防止sql注入的方法详解
2017/02/20 PHP
让whoops帮我们告别ThinkPHP6的异常页面
2020/03/02 PHP
JavaScript 模式之工厂模式(Factory)应用介绍
2012/11/15 Javascript
基于jquery实现一张图片点击鼠标放大再点缩小
2013/09/29 Javascript
JavaScript使用cookie记录临时访客信息的方法
2015/04/07 Javascript
表单验证正则表达式实例代码详解
2015/11/09 Javascript
浅谈JavaScript的内置对象和浏览器对象
2016/06/03 Javascript
jQueryUI DatePicker 添加时分秒
2016/06/04 Javascript
angular ngClick阻止冒泡使用默认行为的方法
2016/11/03 Javascript
Javascript实现跨域后台设置拦截的方法详解
2017/08/04 Javascript
JS实现移动端整屏滑动的实例代码
2017/11/10 Javascript
p5.js入门教程之平滑过渡(Easing)
2018/03/16 Javascript
JavaScript插入排序算法原理与实现方法示例
2018/08/06 Javascript
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
2020/09/01 Javascript
[56:35]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第二局
2016/02/27 DOTA
在Docker上部署Python的Flask框架的教程
2015/04/08 Python
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
python在控制台输出进度条的方法
2015/06/20 Python
利用python批量给云主机配置安全组的方法教程
2017/06/21 Python
手把手教你用python抢票回家过年(代码简单)
2018/01/21 Python
Python3 合并二叉树的实现
2019/09/30 Python
python文字转语音实现过程解析
2019/11/12 Python
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
英国异国风情旅游网站:Travel Talk Tours(团体旅游、探险旅游、帆船假期)
2018/07/26 全球购物
GafasWorld西班牙:购买太阳镜、眼镜和隐形眼镜
2019/09/08 全球购物
波兰家居饰品和厨房配件网上商店:Maleomi
2020/12/15 全球购物
北京一家公司的.net开发工程师笔试题
2012/04/17 面试题
小区停车场管理制度
2014/01/27 职场文书
2015年元旦活动总结
2014/05/09 职场文书
学校春季防火方案
2014/06/08 职场文书
羽毛球社团活动总结
2014/06/27 职场文书
2014年乡镇妇联工作总结
2014/12/02 职场文书
《蟋蟀的住宅》教学反思
2016/02/17 职场文书
创业计划书之DIY自助厨房
2019/09/06 职场文书
vue+elementUI实现表格列的显示与隐藏
2022/04/13 Vue.js