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框架Phpbean说明
Jan 10 PHP
php zend解密软件绿色版测试可用
Apr 14 PHP
PHP+Mysql+jQuery实现动态展示信息
Oct 08 PHP
PHP运行模式的深入理解
Jun 03 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
Mar 13 PHP
ThinkPHP CURD方法之order方法详解
Jun 18 PHP
微信公众平台开发关注及取消关注事件的方法
Dec 23 PHP
PHP随机生成信用卡卡号的方法
Mar 23 PHP
php使用gzip压缩传输js和css文件的方法
Jul 29 PHP
yii2 页面底部加载css和js的技巧
Apr 21 PHP
laravel 实现上传图片到本地和前台访问示例
Oct 21 PHP
PHP实现提取多维数组指定一列的方法总结
Dec 04 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 学习提高路线分享
2011/10/23 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
PHP微信发送推送消息乱码的解决方法
2019/02/28 PHP
js中判断控件是否存在
2010/08/25 Javascript
iframe异步加载实现点击左边菜单加载右边内容实例讲解
2013/03/04 Javascript
jQuery中阻止冒泡事件的方法介绍
2014/04/12 Javascript
jquery选择器简述
2015/08/31 Javascript
js创建对象的方法汇总
2016/01/07 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
2016/07/07 Javascript
React中jquery引用的实现方法
2017/09/12 jQuery
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
Node中使用ES6语法的基础教程
2018/01/05 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
2018/04/26 Javascript
nodejs制作小爬虫功能示例
2020/02/24 NodeJs
基于vue实现简易打地鼠游戏
2020/08/21 Javascript
仅用50行Python代码实现一个简单的代理服务器
2015/04/08 Python
Python 生成一个从0到n个数字的列表4种方法小结
2019/11/28 Python
tensorflow对图像进行拼接的例子
2020/02/05 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
检测浏览器是否支持html5视频的代码
2013/03/28 HTML / CSS
Puritan’s Pride(普丽普莱)官方网站:美国最大最全的保健品公司之一
2016/10/23 全球购物
Stella McCartney官网:成衣、包袋、香水、内衣、童装及Adidas系列
2018/12/20 全球购物
室内设计专业学生的自我评价分享
2013/11/27 职场文书
五十岁生日宴会答谢词
2014/01/15 职场文书
初中同学聚会邀请函
2014/02/03 职场文书
硕士生工作推荐信
2014/03/07 职场文书
个人简历自荐信
2014/06/26 职场文书
个人买房协议书范本
2014/10/06 职场文书
离婚起诉书范本
2015/05/18 职场文书
呼兰河传读书笔记
2015/06/30 职场文书
2019年浪漫婚礼证婚词
2019/06/27 职场文书
Golang生成Excel文档的方法步骤
2021/06/09 Golang
Java获取e.printStackTrace()打印的信息方式
2021/08/07 Java/Android
css实现左上角飘带效果的完整代码
2022/03/18 HTML / CSS
人工智能深度学习OpenAI baselines的使用方法
2022/05/20 Python
JS前端轻量fabric.js系列之画布初始化
2022/08/05 Javascript