thinkphp 抓取网站的内容并且保存到本地的实例详解


Posted in PHP onAugust 25, 2017

thinkphp 抓取网站的内容并且保存到本地的实例详解

我需要写这么一个例子,到电子课本网下载一本电子书。

电子课本网的电子书,是把书的每一页当成一个图片,然后一本书就是有很多张图片,我需要批量的进行下载图片操作。

下面是代码部分:

public function download() {
    $http = new \Org\Net\Http();
    $url_pref = "http://www.dzkbw.com/books/rjb/dili/xc7s/";
    $localUrl = "Public/bookcover/";
    $reg="|showImg\('(.+)'\);|";
    $i=1;
    
    do {
      $filename = substr("000".$i,-3).".htm";
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $url_pref.$filename);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
      curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
      $html = curl_exec($ch);
      curl_close($ch);
      
      $result = preg_match_all($reg,$html,$out, PREG_PATTERN_ORDER);
      if($result==1) {
        $picUrl = $out[1][0];
        $picFilename = substr("000".$i,-3).".jpg";
        $http->curlDownload($picUrl, $localUrl.$picFilename);
      }
      $i = $i+1;
    } while ($result==1);

    echo "下载完成";
  }

我这里是以人教版地理七年级地理上册为例子 http://www.dzkbw.com/books/rjb/dili/xc7s/001.htm

网页是从001.htm开始,然后数字一直加

每个网页里面都有一张图,就是对应课本的内容,以图片的形式展示课本内容

我的代码是做了一个循环,从第一页开始抓,一直抓到找不到网页里的图片为止

抓到网页的内容后,把网页里面的图片抓取到本地服务器

抓取后的实际效果:

thinkphp 抓取网站的内容并且保存到本地的实例详解

以上就是thinkphp 抓取网站的内容并且保存到本地的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
发款php蜘蛛统计插件只要有mysql就可用
Oct 12 PHP
php自动注册登录验证机制实现代码
Dec 20 PHP
PHP面向对象学习笔记之一 基础概念
Oct 06 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
Jul 02 PHP
php获取表单中多个同名input元素的值
Mar 20 PHP
PHP资源管理框架Assetic简介
Jun 12 PHP
PHP has encountered a Stack overflow问题解决方法
Nov 03 PHP
php使用curl并发减少后端访问时间的方法分析
May 12 PHP
PHP验证终端类型是否为手机的简单实例
Feb 07 PHP
PHP实现下载远程图片保存到本地的方法
Jun 19 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
Oct 11 PHP
php输出形式实例整理
May 05 PHP
Laravel中前端js上传图片到七牛云的示例代码
Sep 04 #PHP
使用YII2框架实现微信公众号中表单提交功能
Sep 04 #PHP
PHP实现批量重命名某个文件夹下所有文件的方法
Sep 04 #PHP
PHP读取、解析eml文件及生成网页的方法示例
Sep 04 #PHP
PHP钩子与简单分发方式实例分析
Sep 04 #PHP
PHP实现登录注册之BootStrap表单功能
Sep 03 #PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
Sep 02 #PHP
You might like
PHP 强制下载文件代码
2010/10/24 PHP
Linux下PHP安装mcrypt扩展模块笔记
2014/09/10 PHP
PHP使用redis实现统计缓存mysql压力的方法
2015/11/14 PHP
php 如何获取文件的后缀名
2016/06/05 PHP
javascript 数组的方法集合
2008/06/05 Javascript
jQuery代码优化 事件委托篇
2011/11/01 Javascript
简单的Jquery全选功能
2013/11/07 Javascript
jQuery实现可收缩展开的级联菜单实例代码
2013/11/27 Javascript
JavaScript 正则表达式中global模式的特性
2016/02/25 Javascript
jquery设置表单元素为不可用的简单代码
2016/07/04 Javascript
jQuery实现简易的输入框字数计数功能示例
2017/01/16 Javascript
NodeJS学习笔记之Module的简介
2017/03/24 NodeJs
jQuery用noConflict代替$的实现方法
2017/04/12 jQuery
JavaScript条件判断_动力节点Java学院整理
2017/06/26 Javascript
清空元素html("") innerHTML="" 与 empty()的区别和应用(推荐)
2017/08/14 Javascript
详解webpack + vue + node 打造单页面(入门篇)
2017/09/23 Javascript
vue-自定义组件传值的实例讲解
2018/09/18 Javascript
layui多图上传实现删除功能的例子
2019/09/23 Javascript
原生js实现碰撞检测
2020/03/12 Javascript
vue keep-alive实现多组件嵌套中个别组件存活不销毁的操作
2020/10/30 Javascript
[05:01]3.19DOTA2发布会 我们都是刀塔人
2014/03/25 DOTA
[03:16]DOTA2完美大师赛小组赛精彩集锦
2017/11/22 DOTA
[50:28]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs KG
2018/04/01 DOTA
socket + select 完成伪并发操作的实例
2017/08/15 Python
Django接收照片储存文件的实例代码
2020/03/07 Python
python飞机大战游戏实例讲解
2020/12/04 Python
html5+css3之动画在webapp中的应用
2014/11/21 HTML / CSS
说出一些常用的类,包,接口
2014/09/22 面试题
婚礼新郎父母答谢词
2014/01/16 职场文书
新学期教师寄语
2014/04/02 职场文书
求职教师自荐书
2014/06/19 职场文书
无犯罪记录证明范本
2014/09/15 职场文书
公务员上班玩游戏检讨书
2014/09/17 职场文书
经典励志格言:每日一句,让你每天充满能量
2019/08/16 职场文书
详解MindSpore自定义模型损失函数
2021/06/30 Python
Nginx配置之禁止指定IP访问
2022/05/02 Servers