基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例

本文实例讲述了基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作。分享给大家供大家参考,具体如下:

QueryList4教程 地址:

https://doc.querylist.cc/site/index/doc/45

在ThinkPHP5代码根目录执行composer命令安装QueryList:

composer require jaeger/querylist

如果出现 以下错误

Loading composer repositories with package information
Updating dependencies (including require-dev)
    Authentication required (packagist.phpcomposer.com):
      Username:

出现这样的 情况

使用

composer config -g repo.packagist composer https://packagist.laravel-china.org

下面演示在Index控制器中使用QueryList:

use QL\QueryList;
public function qulist(){
  $data = QueryList::get('http://maoyan.com/board/4')
  // 设置采集规则
  ->rules([
    // 爬取图片地址
    "src"=>array(".board-wrapper dd img.board-img","data-src"),
    // 爬取电影名
    "name"=>array(".board-wrapper dd .movie-item-info .name","html"),
    // 爬取电影主演信息
    "star"=>array(".board-wrapper dd .movie-item-info .star","html"),
    // 爬取上映时间
    "releasetime"=>array(".board-wrapper dd .movie-item-info .releasetime","html"),
  ])
  ->query()->getData();
  $excel_array=$data->all();
  var_dump($excel_array);exit;
}

如果没有错的 则

基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例

如果想继续抓取下一页的数据 要根据规律来去

基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例

这里我继续抓取20页 但是没有那么多就抓取了10页的数据

public function qulist(){
    for($i=0;$i<20;$i++){
      $page=$i*10;
      $data = QueryList::get('http://maoyan.com/board/4?offset='.$page)
        // 设置采集规则
        ->rules([
          // 爬取图片地址
          "src"=>array(".board-wrapper dd img.board-img","data-src"),
          // 爬取电影名
          "name"=>array(".board-wrapper dd .movie-item-info .name","html"),
          // 爬取电影主演信息
          "star"=>array(".board-wrapper dd .movie-item-info .star","html"),
          // 爬取上映时间
          "releasetime"=>array(".board-wrapper dd .movie-item-info .releasetime","html"),
        ])
        ->query()->getData();
      $excel_array=$data->all();
      var_dump($excel_array);exit;
    }
}

将数据插入到数据库 详细步骤

基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例

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

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

时间: 2019-05-22

thinkPHP5实现的查询数据库并返回json数据实例

本文实例讲述了thinkPHP5实现的查询数据库并返回json数据.分享给大家供大家参考,具体如下: TP5 实现查询数据库返回json数据(返回json数据函数实例) 返回结果: 复制代码 代码如下: {"code":0,"msg":"\u6570\u636e\u8fd4\u56de\u6210\u529f","count":1000,"data":[{"id":617,"t

thinkPHP5框架数据库连贯操作之cache()用法分析

本文实例讲述了thinkPHP5框架数据库连贯操作之cache()用法.分享给大家供大家参考,具体如下: 介绍 TP5中自带的缓存系统,是File型缓存.也就是文件型缓存.存储地址是:根目录\..\runtime\cache(根目录指public). 这个缓存系统相较于redis,memcached肯定有局限性的,自动更新以及缓存数据的复杂程度上有区别.但是对于一些简单的查询等还有很有帮助的.比如文章等这些内容使用起来还是不错的. cache可以用于select.find.value和colum

tp5(thinkPHP5)框架实现多数据库查询的方法

本文实例讲述了tp5(thinkPHP5)框架实现多数据库查询的方法.分享给大家供大家参考,具体如下: 引言: 有时候一个管理后台,需要涉及到多个数据库.比如,商城管理.直播管理.消息管理等等,它们都有自己的数据库.这个时候,就需要去连接多个数据库,进行处理了.thinkphp可以支持多个数据库连接. 如何处理呢? 1.进行多个数据库的配置 默认会连接database.php中的数据库信息. <?php // +------------------------------------------

thinkphp5 migrate数据库迁移工具

tp5相对与tp3.2有很大的不同 migrate是其中一点,通过migrate程序员可以在php代码中创建数据库修改回滚等操作 首先下载migrate扩展,命令行到当前项目目录下执行 composer require topthink/think-migration 通过使用php think命令可以查看migrate是否成功下载 使用migrate:create migrate文件名(首字母大写的驼峰法),在database下生成migrate文件 有可能建立失败提示没有什么方法一般是com

PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】

本文实例讲述了PHP7使用ODBC连接SQL Server2008 R2数据库.分享给大家供大家参考,具体如下: 我用的是:WampServer集成工具,PHP版本为7.0.29,数据库为SQL Server 2008 R2: 注意:在连接数据库时,需要进入X:\wamp\bin\apache\apache2.4.33\bin目录下的PHP配置文件:PHP.ini.进入里面修改相关配置.配置如下: extension=php_odbc.dll 把前面冒号去掉开启服务 并且 重启下WampServ

thinkPHP5实现数据库添加内容的方法

本文实例讲述了thinkPHP5实现数据库添加内容的方法.分享给大家供大家参考,具体如下: 面对一个新框架安装好了一般不知道要干啥.那就先做一个写入功能先. 先做好准备工作先,首先要连接上数据库. 配置文件在application下的database.php里 return [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'shoptest', // 用户名 '

tp5(thinkPHP5)操作mongoDB数据库的方法

本文实例讲述了tp5(thinkPHP5)操作mongoDB数据库的方法.分享给大家供大家参考,具体如下: 1.通过composer安装 composer require mongodb/mongodb 2.使用 <?php /** * @author: jim * @date: 2017/11/17 */ namespace app\index\controller; use think\Controller; use MongoDB\Driver\Manager; use MongoDB\C

PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】

本文实例讲述了PHP利用pdo_odbc实现连接数据库.分享给大家供大家参考,具体如下: 目的:从sql server数据库里面把某个视图文件调用出来,以键值对的方式显示在页面上. 利用pdo odbc来实现PHP连接数据库: 在PHP配置文件里面开启pdo_odbc.dll服务.重启Apache服务器. 在ThinkPHP5.1的项目中在模块里添加config添加规定好的样式数据库: 代码如下: <?php return [ // 数据库类型 'type' => 'sqlsrv', // 服

基于ThinkPHP5.0实现图片上传插件

效果预览图: 该插件主要功能是:可预览裁剪图片和保存原图片,执行裁剪图片后会删除 裁剪的原图片目录,以便减少空间. 一.下载附件 地址:链接: https://pan.baidu.com/s/1nuQ4NgP  密码: 4pbu 二.将附件中的CropAvatar.php放到自己程序目录extend/org目录下,如果遇到 exif_imagetype 错误,需要打开 php.ini 中的 extension=php_exif.dll 三.common.php公共函数 找到应用程序目录下的com

Spring Boot JDBC 连接数据库示例

文本将对在spring Boot构建的Web应用中,基于MySQL数据库的几种数据库连接方式进行介绍. 包括JDBC.JPA.MyBatis.多数据源和事务. JDBC 连接数据库 1.属性配置文件(application.properties) spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=123456 sprin

Python数据分析之如何利用pandas查询数据示例代码

前言 在数据分析领域,最热门的莫过于Python和R语言,本文将详细给大家介绍关于Python利用pandas查询数据的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 示例代码 这里的查询数据相当于R语言里的subset功能,可以通过布尔索引有针对的选取原数据的子集.指定行.指定列等.我们先导入一个student数据集: student = pd.io.parsers.read_csv('C:\\Users\\admin\\Desktop\\student.csv')

Lua利用cjson读写json示例分享

我这里采用的是Lua CJson库,是一个高性能的JSON解析器和编码器,其性能比纯Lua库要高10~20倍.并且Lua Json完全支持UTF-8,无需以来其他非Lua/LuaJit相关包. 环境安装 这里就不详细写了,随便问下谷歌就有一大堆答案. 示例代码 解析JSON 复制代码 代码如下: local cjson = require "cjson" local sampleJson = [[{"age":"23","testArr

python利用正则表达式搜索单词示例代码

前言 在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配.正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行. 比如下面的例子,就是用来从一段文字里查找一个单词,如下: 示例代码 import re pattern = 'this' text = 'http://blog.csdn.net/caimouse is great, this is great way!' match = re.search(pattern, text) s = match.st

Python 3.x 连接数据库示例(pymysql 方式)

由于 MySQLdb 模块还不支持 Python3.x,所以 Python3.x 如果想连接MySQL需要安装 pymysql 模块. pymysql 模块可以通过 pip 安装.但如果你使用的是 pycharm IDE,则可以使用 project python 安装第三方模块. [File] >> [settings] >> [Project: python] >> [Project Interpreter] >> [Install按钮] 由于Python

Android之利用EventBus发送消息传递示例

一.概述 EventBus是一款针对Android优化的发布/订阅事件总线.主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅.以及将发送者和接收者解耦. 1.下载EventBus的类库 源码:EventBus_jb51.rar 2.基本使用 (1)自定义一个类,可以是空类,比如: public class AnyEventType { public AnyEventType(){} }

c#利用webmail邮件系统发送邮件示例分享

在C#中发送邮件的方式有2种,一种是使用webmail方式进行发送,另外一种就是采用netmail发送的方式,在采用这2种方式发送邮件时,如果采用公用的邮件服务器(如126邮件服务器,Sina的邮件服务器)都是需要授权认证才能够发送,如果是采用Gmail的话,还会有每天发送邮件的数量等限制.这2种方式是经过我测试通过了的代码,只需要将邮件的用户名和密码修改成自己的即可,同时也可以修改邮件服务器,改成自己配置的邮件服务器. 复制代码 代码如下: /// <summary>    /// 发送Em

基于vuejs实现一个todolist项目

用vue.js实现一个todolist项目:input输入框输入的值会呈现在下方,并且会保存在localStorage里面,而且下方的列表点击之后也会有变化: 完整代码: App.vue <template> <div id="app"> <h1 v-html = "title"></h1> <input v-model="newItem" v-on:keyup.enter="add

基于Node.js的JavaScript项目构建工具gulp的使用教程

npm install gulp --save-dev 什么是gulp? gulp是新一代的前端项目构建工具,你可以使用gulp及其插件对你的项目代码(less,sass)进行编译,还可以压缩你的js和css代码,甚至压缩你的图片,gulp仅有少量的API,所以非常容易学习. gulp 使用 stream 方式处理内容.Node催生了一批自动化工具,像Bower,Yeoman,Grunt等. gulp和grunt的异同点 易于使用:采用代码优于配置策略,Gulp让简单的事情继续简单,复杂的任务变