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 相关文章推荐
判“新”函数:得到今天与明天的秒数
Oct 09 PHP
攻克CakePHP系列二 表单数据显示
Oct 22 PHP
php is_file 判断给定文件名是否为一个正常的文件
May 10 PHP
晋城吧对DiscuzX进行的前端优化要点
Sep 05 PHP
PHP的switch判断语句的“高级”用法详解
Oct 01 PHP
PHP实现微信发红包程序
Aug 24 PHP
详解php设置session(过期、失效、有效期)
Nov 12 PHP
php 使用html5实现多文件上传实例
Oct 24 PHP
php微信公众号js-sdk开发应用
Nov 28 PHP
PHP实现二维数组去重功能示例
Jan 12 PHP
PHP bin2hex()函数基础实例讲解
Feb 11 PHP
如何在Mac上通过docker配置PHP开发环境
May 29 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
星际争霸任务指南——虫族
2020/03/04 星际争霸
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
修改php.ini实现Mysql导入数据库文件最大限制的修改方法
2007/12/11 PHP
浅谈php的优缺点
2015/07/14 PHP
ThinkPHP中使用Ueditor富文本编辑器
2015/09/02 PHP
PHP扩展Swoole实现实时异步任务队列示例
2019/04/13 PHP
使用laravel指定日志文件记录任意日志
2019/10/17 PHP
js监听键盘事件示例代码
2013/07/26 Javascript
jqGrid日期格式的判断示例代码(开始日期与结束日期)
2013/11/08 Javascript
javascript 实现字符串反转的三种方法
2013/11/23 Javascript
JavaScript针对网页节点的增删改查用法实例
2015/02/02 Javascript
基于jQuery实现表格内容的筛选功能
2016/08/21 Javascript
Vue.js实现简单动态数据处理
2017/02/13 Javascript
解决循环中setTimeout执行顺序的问题
2018/06/20 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
2018/10/20 Javascript
jQuery实现的五星点评功能【案例】
2019/02/18 jQuery
JavaScript实现预览本地上传图片功能完整示例
2019/03/08 Javascript
如何在JavaScript中谨慎使用代码注释
2019/06/21 Javascript
uploadify插件实现多个图片上传并预览
2019/09/30 Javascript
js判断一个对象是数组(函数)的方法实例
2019/12/19 Javascript
完美解决通过IP地址访问VUE项目的问题
2020/07/18 Javascript
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
Python subprocess模块学习总结
2014/03/13 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
2017/12/12 Python
Python基于列表list实现的CRUD操作功能示例
2018/01/05 Python
python Django里CSRF 对应策略详解
2019/08/05 Python
Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式
2020/06/02 Python
跟单文员的岗位职责
2013/11/14 职场文书
劳资人员岗位职责
2013/12/19 职场文书
早会主持词
2014/03/17 职场文书
私人房屋买卖协议书
2014/10/04 职场文书
教师党员批评与自我批评
2014/10/15 职场文书
《好妈妈胜过好老师》:每个孩子的优秀都是有源头的
2020/01/03 职场文书
pytorch Dropout过拟合的操作
2021/05/27 Python
JavaScript中reduce()的用法
2022/05/11 Javascript
win10滚动条自动往上跑怎么办?win10滚动条自动往上跑的解决方法
2022/08/05 数码科技