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

来源:脚本之家  责任编辑:小易  

是ThinkPHP框架的缩写。ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架

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

面向过程就是你把代码封装成子过程或函数(procedure),然后依次去做一件事情;面向对象就是

最近想写一个小说网站,就去搜资料,搜出来TP5可以使用QueryList采集框架去爬小说,这里我来给大家详解如何用QueryList去爬小说。

你为什么要这样。用2套框架放一个项目。性能低啊,不容易维护,函数可能会冲突等不明事情发生。如果非得

#首先应该下载TP5框架,然后在extend里面建立一个文件夹命名为QL,再去官网下载QueryList,然后把phpQuery.php 和 QueryList.php 两个文件放在QL文件夹下,如图:

前台发送请求,然后获取数据,判断状态,做了一下提示。

在这里插入图片描述

##在QueryList.php里面加上命名空间:

看下radio属性 <input type="radio" nam

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

我家宝宝现在两岁了,从她20个月开始,白天她自己大小便会自己脱裤子去马桶,出门在外面要大小便会喊我们,只有晚上用尿不湿,不过最近这一周她一夜到天亮尿不湿还是干的。准备不给她用了,说说我的看法。首先,得顺从孩子,不要强迫。孩子1岁了就开始教他使用马桶,大人可以示范,教孩子尿尿拉臭臭时喊人。可能刚开始她不会自己脱裤子,有时尿裤子,不要责备,告诉他这很正常,爸爸妈妈小时候也尿裤子。其次,孩子如果成功坐马桶尿了,积极鼓励。一定要很开心的告诉宝宝很厉害,可以自己拉臭臭,他会享受独立自主的喜悦。再次,每个孩子状况不一样,家长不要着急,只要引导好,迟早他会脱离尿不湿,你能看到有几个孩子上学了还穿尿不湿的。总

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

纵观中国男足和乌兹别克斯坦的历史交锋记录,我们中国队并不占优势。目前国足8战积6分排名垫底,想要获得小组第三名打附加赛的机会可以说是微乎其微。剩下的比赛很可能就是我们常说的荣誉之战了。不过只要有万分之一的机会,我们就要全力以赴去争取。国足虐我千百遍,我待国足如初恋!因为我们是中国人,不管国足成绩如何,只要国足众将士不放弃,不气馁,我们就会一直不离不弃的支持他们!

##采集他的章节名和每一章节的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); } } } }

我们来打印一下他的章节名和章节内容:

在这里插入图片描述在这里插入图片描述注:1.class属性一定要找对

2.采集下来 $data 的第一个数组的link不是第一章的url,下一个才是第一章的,所以 data[ data[" role="presentation" style="position: relative;">data[i+1][‘link'] 是他第i章的url

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

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

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

tp5框架中的方法怎样实现自动调用

自己应该是无法实现自调用的。除非用一种工具,访问TP5框架的地址。才能实现调用的功能。或者使用腾讯云或阿里云有个定时访问的云函数,可以通过那个方式,定时访问你的TP框架的地址。希望可以帮到你。本回答被网友采纳

别人用tp5框架做好的项目,我如何在我的电脑上运行

TP框架要求5.3以上的PHP环境,否则运行就是这样。你检查一下咯。本回答被网友采纳

TP5框架如何用Db类查询这条sql语句

你这段sql,前面那个括号是没必要的,全部是and

Db::name('goods')->where('id',1)->where('price',1)

->whereIn('status',[0,2]);

这个写法可以达到你要的效果

也可以通过where嵌套,生成出来 就是你写的那种

Db::name('goods')->where('id',1)->where('price',1)

->where(function($db){

    return $db->where('status',1)->whereOr('status',2);

});

希望对你有帮

TP5框架如何order自定义排序

使用tp的Expression类

别问我为什么知道,我也是遇到这种需求,然后看源码才搞定的

$exp = new \think\db\Expression('field(id,3,6,9,1,2,5,8,7)');

$result = $query->where(['id'=>['in','3,6,9,1,2,5,8,7']])->order($exp)->select();

  • 本文相关:
  • 基于thinkphp5框架使用querylist爬取并存入mysql数据库操作示例
  • php使用querylist轻松采集js动态渲染页面方法
  • thinkphp 抓取网站的内容并且保存到本地的实例详解
  • jquery+thinkphp实现跨域抓取数据的方法
  • thinkphp5 url和路由的功能详解与实例
  • thinkphp5查询数据及处理结果的方法小结
  • tp5(thinkphp5)框架基于ajax与后台数据交互操作简单示例
  • thinkphp5.1 文件引入路径问题及注意事项
  • thinkphp5(tp5)实现改写跳转提示页面的方法
  • tp5(thinkphp5)框架数据库db增删改查常见操作总结
  • thinkphp5 加载静态资源路径与常量的方法
  • tp5(thinkphp5)框架实现多数据库查询的方法
  • 使用 eaccelerator加速php代码的方法
  • 简单解决新浪sae无法上传文件的问题
  • php验证码函数代码(简单实用)
  • discuz!插件:自动隐藏帖子
  • zend framework入门教程之zend_mail用法示例
  • php制作圆形用户头像的实例_自定义封装类源代码
  • yii2 modal弹窗之activeform ajax表单异步验证
  • thinkphp开发--使用七牛云储存
  • zend framework实现多文件上传功能实例
  • php使用curl_multi实现多线程采集的例子
  • tp5框架中的方法怎样实现自动调用
  • 别人用tp5框架做好的项目,我如何在我的电脑上运行
  • TP5框架如何用Db类查询这条sql语句
  • TP5框架如何order自定义排序
  • tp5框架怎么先算减法再算惩罚
  • 面向对象及TP5框架初识内容怎么样
  • PHP进阶:面向对象及TP5框架初识
  • thinkphp5.0如何跟微擎结合,就是在TP里面如何使用$_W这些属于微擎框架的变量
  • 请问下图中tp5框架方法中传了什么到前端模板去
  • php tp5框架用volist 循环单选框原样输出 select框却不是 是什么原因?如图
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全php基础php技巧php实例php文摘php模板首页php编程php实例thinkphp入门教程thinkphp模板操作技巧总结thinkphp常用方法总结codeigniter入门教程ci(codeigniter)框架进阶教程zend framework框架入门教程php模板技术总结基于thinkphp5框架使用querylist爬取并存入mysql数据库操作示例php使用querylist轻松采集js动态渲染页面方法thinkphp 抓取网站的内容并且保存到本地的实例详解jquery+thinkphp实现跨域抓取数据的方法thinkphp5 url和路由的功能详解与实例thinkphp5查询数据及处理结果的方法小结tp5(thinkphp5)框架基于ajax与后台数据交互操作简单示例thinkphp5.1 文件引入路径问题及注意事项thinkphp5(tp5)实现改写跳转提示页面的方法tp5(thinkphp5)框架数据库db增删改查常见操作总结thinkphp5 加载静态资源路径与常量的方法tp5(thinkphp5)框架实现多数据库查询的方法使用 eaccelerator加速php代码的方法简单解决新浪sae无法上传文件的问题php验证码函数代码(简单实用)discuz!插件:自动隐藏帖子zend framework入门教程之zend_mail用法示例php制作圆形用户头像的实例_自定义封装类源代码yii2 modal弹窗之activeform ajax表单异步验证thinkphp开发--使用七牛云储存zend framework实现多文件上传功能实例php使用curl_multi实现多线程采集的例子php获取数组长度的方法(有实例)微信公众平台实现获取用户openid教你如何使用php session使用php生成二维码的两种方法(带php发送get、post请求的6种方法简php中把stdclass object转array的微信公众平台网页授权获取用户基laravel框架数据库curd操作、连贯php删除数组中空值的方法介绍php字符串的连接的简单实例php mysql 留言本应用实例php多态代码实例php在线生成ico文件的代码php mkdir()无写权限的问题解决方法ci配置多数据库访问的方法dvwa+xampp搭建显示乱码的问题及解决方案基于php-fpm的配置详解php常用处理静态操作类php表单习惯用的正则表达式php去掉从word直接粘贴过来的没有用格式的
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved