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判断文件是否存在、是否可读、目录是否存在的代码
Oct 03 PHP
PHP 登录记住密码实现思路
May 07 PHP
php用户注册页面利用js进行表单验证具体实例
Oct 17 PHP
PHP扩展模块memcached长连接使用方法分析
Dec 24 PHP
php编程每天必学之表单验证
Mar 01 PHP
php 二维数组时间排序实现代码
Nov 19 PHP
ThinkPHP 模板substr的截取字符串函数详解
Jan 09 PHP
thinkphp关于简单的权限判定方法
Apr 03 PHP
原生php实现excel文件读写的方法分析
Apr 25 PHP
tp5框架使用composer实现日志记录功能示例
Jan 10 PHP
php的扩展写法总结
May 14 PHP
详解Laravel制作API接口
May 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
通过ODBC连接的SQL SERVER实例
2006/10/09 PHP
在IIS7.0下面配置PHP 5.3.2运行环境的方法
2010/04/13 PHP
php链表用法实例分析
2015/07/09 PHP
javascript编程起步(第五课)
2007/01/10 Javascript
调试Node.JS的辅助工具(NodeWatcher)
2012/01/04 Javascript
如何解决Jquery库及其他库之间的$命名冲突
2013/09/15 Javascript
js代码实现的加入收藏效果并兼容主流浏览器
2014/06/23 Javascript
js控制台输出的方法(详解)
2016/11/26 Javascript
获取jqGrid中选择的行的数据
2016/11/30 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
2017/10/27 Javascript
vue2.0 兄弟组件(平级)通讯的实现代码
2018/01/15 Javascript
详解在React里使用&quot;Vuex&quot;
2018/04/02 Javascript
用JS实现根据当前时间随机生成流水号或者订单号
2018/05/31 Javascript
javascript实现的时间格式加8小时功能示例
2019/06/13 Javascript
JS异步宏队列与微队列原理区别详解
2020/07/02 Javascript
精确查找PHP WEBSHELL木马的方法(1)
2011/04/12 Python
python基于右递归解决八皇后问题的方法
2015/05/25 Python
python基于twisted框架编写简单聊天室
2018/01/02 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
2018/01/22 Python
详解Python安装scrapy的正确姿势
2018/06/26 Python
对python 多线程中的守护线程与join的用法详解
2019/02/18 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
2019/07/19 Python
pandas和spark dataframe互相转换实例详解
2020/02/18 Python
python实现密码验证合格程序的思路详解
2020/06/01 Python
基于Keras中Conv1D和Conv2D的区别说明
2020/06/19 Python
使用CSS3实现SVG路径描边动画效果入门教程
2019/10/21 HTML / CSS
美国高街时尚品牌:OASAP
2016/07/24 全球购物
银行职员个人的工作自我评价
2014/02/15 职场文书
闭幕式主持词
2014/04/02 职场文书
有关爱国演讲稿
2014/05/07 职场文书
公安学专业求职信
2014/07/27 职场文书
化学工程专业求职信
2014/08/10 职场文书
2014年会计工作总结
2014/11/27 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书
《女娲补天》读后感5篇
2019/12/31 职场文书
Pandas数据类型之category的用法
2021/06/28 Python