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 开发环境配置(Zend Studio)
Apr 28 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(九)
Jun 24 PHP
laravel容器延迟加载以及auth扩展详解
Mar 02 PHP
PHP实现获取某个月份周次信息的方法
Aug 11 PHP
php中文乱码问题的终极解决方案汇总
Aug 01 PHP
Laravel构建即时应用的一种实现方法详解
Aug 31 PHP
php代码调试利器firephp安装与使用方法分析
Aug 21 PHP
PHP PDOStatement::fetch讲解
Jan 31 PHP
PHP实现的微信公众号扫码模拟登录功能示例
May 30 PHP
PHP实用小技巧之调用录像的方法
Dec 05 PHP
PHP7 其他修改
Mar 09 PHP
php实现自动生成验证码的实例讲解
Nov 17 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实现小型站点广告管理
2006/10/09 PHP
PHP MSSQL 存储过程的方法
2008/12/24 PHP
CI框架常用方法小结
2016/05/17 PHP
php 生成加密公钥加密私钥实例详解
2017/06/16 PHP
PHP创建XML接口示例
2019/07/04 PHP
使用javascript实现页面定时跳转总结篇
2013/09/21 Javascript
结合JQ1.9通过js正则判断各种浏览器版本的方法
2013/12/30 Javascript
JS实现静止元素自动移动示例
2014/04/14 Javascript
jquery仿百度百科底部浮动导航特效
2015/08/08 Javascript
JavaScript必知必会(九)function 说起 闭包问题
2016/06/08 Javascript
jQuery实现的背景颜色渐变动画效果示例
2017/03/24 jQuery
浅谈Node Inspector 代理实现
2017/10/19 Javascript
node 文件上传接口的转发的实现
2019/09/23 Javascript
动态实现element ui的el-table某列数据不同样式的示例
2021/01/22 Javascript
[10:24]郎朗助力完美“圣”典,天籁交织奏响序曲
2016/12/18 DOTA
python获得一个月有多少天的方法
2015/06/04 Python
Python实现简单的文件传输与MySQL备份的脚本分享
2016/01/03 Python
使用NumPy和pandas对CSV文件进行写操作的实例
2018/06/14 Python
详解Python3中的迭代器和生成器及其区别
2018/10/09 Python
Pycharm最常用的快捷键及使用技巧
2020/03/05 Python
利用matplotlib为图片上添加触发事件进行交互
2020/04/23 Python
python 还原梯度下降算法实现一维线性回归
2020/10/22 Python
python递归函数用法详解
2020/10/26 Python
python 使用openpyxl读取excel数据
2021/02/18 Python
HTML5使用ApplicationCache接口实现离线缓存技术解决离线难题
2012/12/13 HTML / CSS
用HTML5制作一个简单的弹力球游戏
2015/05/12 HTML / CSS
HTML5学习笔记之html5与传统html区别
2016/01/06 HTML / CSS
李维斯德国官方网上商店:Levi’s德国
2016/09/10 全球购物
波兰在线体育用品商店:Hop-Sport.pl
2019/07/23 全球购物
夏威夷咖啡公司:Hawaii Coffee Company
2019/09/19 全球购物
广州迈达威.net面试题目
2012/03/10 面试题
英语专业学子个人的自我评价
2013/10/02 职场文书
幼儿园中秋节活动方案
2014/02/06 职场文书
2014年作风建设工作总结
2014/10/29 职场文书
图书借阅制度范本
2015/08/06 职场文书
nginx如何将http访问的网站改成https访问
2021/03/31 Servers