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实现与ASP Banner组件相似的类
Oct 09 PHP
Discuz板块横排显示图片的实现方法
May 28 PHP
php与mysql建立连接并执行SQL语句的代码
Jul 04 PHP
一个PHP并发访问实例代码
Sep 06 PHP
用C/C++扩展你的PHP 为你的php增加功能
Sep 06 PHP
PHP+MySQL之Insert Into数据插入用法分析
Sep 27 PHP
学习php设计模式 php实现状态模式
Dec 07 PHP
CodeIgniter多语言实现方法详解
Jan 20 PHP
PHP微信开发之微信录音临时转永久存储
Jan 26 PHP
PHP中的self关键字详解
Jun 23 PHP
PHP使用openssl扩展实现加解密方法示例
Feb 20 PHP
phpstudy2020搭建站点的实现示例
Oct 30 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项目的方法
2006/10/09 PHP
PHP网站备份程序代码分享
2011/06/10 PHP
PHP实现格式化文件数据大小显示的方法
2015/01/03 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
多浏览器支持的右下角浮动窗口
2010/04/01 Javascript
jQuery参数列表集合
2011/04/06 Javascript
js通过googleAIP翻译PHP系统的语言配置的实现代码
2011/10/17 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
js获取上传文件大小示例代码
2014/04/10 Javascript
jquery中show()、hide()和toggle()用法实例
2015/01/15 Javascript
js实现的tab标签切换效果代码分享
2015/08/25 Javascript
基于PHP和Mysql相结合使用jqGrid读取数据并显示
2015/12/02 Javascript
JavaScript SHA-256加密算法详细代码
2016/10/06 Javascript
浅谈在js传递参数中含加号(+)的处理方式
2016/10/11 Javascript
jQuery实现页面滚动时智能浮动定位
2017/01/08 Javascript
详解Vue2.0 事件派发与接收
2017/09/05 Javascript
Javascript中将变量转换为字符串的三种方法
2017/09/19 Javascript
在Vue组件中获取全局的点击事件方法
2018/09/06 Javascript
微信小程序基于picker实现级联菜单
2019/02/15 Javascript
在JavaScript中使用严格模式(Strict Mode)
2019/06/13 Javascript
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
谈谈JavaScript令人迷惑的==与+
2020/08/31 Javascript
python聊天程序实例代码分享
2013/11/18 Python
python海龟绘图实例教程
2014/07/24 Python
给Python的Django框架下搭建的BLOG添加RSS功能的教程
2015/04/08 Python
Python 读取某个目录下所有的文件实例
2018/06/23 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
2019/01/04 Python
使用Python画股票的K线图的方法步骤
2019/06/28 Python
wxPython实现带颜色的进度条
2019/11/19 Python
PyQt5实现登录页面
2020/05/30 Python
业务部主管岗位职责
2014/01/29 职场文书
2014教师党员自我评议(5篇)
2014/09/20 职场文书
工会积极分子个人总结
2015/03/03 职场文书
首席执行官观后感
2015/06/03 职场文书
vue实现无缝轮播效果(跑马灯)
2021/05/14 Vue.js
SpringBoot连接MySQL获取数据写后端接口的操作方法
2021/11/02 MySQL