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 相关文章推荐
如何提高MYSQL数据库的查询统计速度 select 索引应用
Apr 11 PHP
php adodb连接不同数据库
Mar 19 PHP
php设计模式 Decorator(装饰模式)
Jun 26 PHP
Sublime里直接运行PHP配置方法
Nov 28 PHP
Laravel 5 框架入门(四)完结篇
Apr 09 PHP
Yii rules常用规则示例
Mar 15 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
May 12 PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
Jun 13 PHP
php版微信开发Token验证失败或请求URL超时问题的解决方法
Sep 23 PHP
PHP实现微信退款的方法示例
Mar 26 PHP
PHP常量define和const的区别详解
May 18 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
Sep 03 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
phpMyAdmin 安装配置方法和问题解决
2009/06/08 PHP
php引用地址改变变量值的问题
2012/03/23 PHP
php使用json_encode对变量json编码
2014/04/07 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
2019/07/01 PHP
PHP tp5中使用原生sql查询代码实例
2020/10/28 PHP
十分钟打造AutoComplete自动完成效果代码
2009/12/26 Javascript
javascript SpiderMonkey中的函数序列化如何进行
2012/12/05 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
js事件监听机制(事件捕获)总结
2014/08/08 Javascript
用svg制作富有动态的tooltip
2015/07/17 Javascript
Javascript实现的SHA-256加密算法完整实例
2016/02/02 Javascript
jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)
2016/03/05 Javascript
Bootstrap 表单验证formValidation 实现远程验证功能
2017/05/17 Javascript
解决vue的 v-for 循环中图片加载路径问题
2018/09/03 Javascript
2种在vue项目中使用百度地图的简单方法
2018/09/28 Javascript
微信小程序实现单选功能
2018/10/30 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
2019/01/18 Javascript
如何写好一个vue组件,老夫的一年经验全在这了(推荐)
2019/05/18 Javascript
使用typescript改造koa开发框架的实现
2020/02/04 Javascript
[01:27]2014DOTA2展望TI 剑指西雅图IG战队专访
2014/06/30 DOTA
python提示No module named images的解决方法
2014/09/29 Python
Django实现图片文字同时提交的方法
2015/05/26 Python
python3使用pyqt5制作一个超简单浏览器的实例
2017/10/19 Python
python openpyxl使用方法详解
2019/07/18 Python
python字典的setdefault的巧妙用法
2019/08/07 Python
Python将视频或者动态图gif逐帧保存为图片的方法
2019/09/10 Python
快速了解Python开发环境Spyder
2020/06/29 Python
简单聊聊H5的pushState与replaceState的用法
2018/04/03 HTML / CSS
html5播放视频且动态截图实现步骤与代码(支持safari其他未测试)
2013/01/06 HTML / CSS
用HTML5制作视频拼图的教程
2015/05/13 HTML / CSS
如何用H5实现一个触屏版的轮播器的实例
2017/01/09 HTML / CSS
KELLER SPORTS荷兰:在线订购最好的运动产品
2020/10/13 全球购物
2015年党员个人自我评价
2015/03/03 职场文书
python图片灰度化处理的几种方法
2021/06/23 Python
Python如何解决secure_filename对中文不支持问题
2021/07/16 Python
frg-100简单操作(设置)说明
2022/04/05 无线电