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(2)
Oct 09 PHP
php去除重复字的实现代码
Sep 16 PHP
PHP过滤★等特殊符号的正则
Jan 27 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
Feb 02 PHP
Laravel框架学习笔记(一)环境搭建
Oct 15 PHP
PHP中遇到的时区问题解决方法
Jul 23 PHP
php base64 编码与解码实例代码
Mar 21 PHP
PHP实现的Redis多库选择功能单例类
Jul 27 PHP
PHP微信支付结果通知与回调策略分析
Jan 10 PHP
Laravel框架文件上传功能实现方法示例
Apr 16 PHP
laravel 修改.htaccess文件 重定向public的解决方法
Oct 12 PHP
laravel5.1 ajax post 传值_token示例
Oct 24 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
再次研究下cache_lite
2007/02/14 PHP
注意:php5.4删除了session_unregister函数
2013/08/05 PHP
php通过array_merge()函数合并两个数组的方法
2015/03/18 PHP
ThinkPHP静态缓存简单配置和使用方法详解
2016/03/23 PHP
PHP判断数组是否为空的常用方法(五种方法)
2017/02/08 PHP
Laravel框架实现利用监听器进行sql语句记录功能
2018/06/06 PHP
W3C Group的JavaScript1.8 新特性介绍
2009/05/19 Javascript
JS对select控件option选项的增删改查示例代码
2013/10/21 Javascript
JavaScript截断字符串的方法
2015/07/15 Javascript
jQuery的position()方法详解
2015/07/19 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
2016/06/23 Javascript
详解React 16 中的异常处理
2017/07/28 Javascript
bootstrap时间控件daterangepicker使用方法及各种小bug修复
2017/10/25 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
2017/10/27 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
解决vue中监听input只能输入数字及英文或者其他情况的问题
2018/08/30 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
2018/09/18 Javascript
js实现简单模态框实例
2018/11/16 Javascript
Vue项目结合Vue-layer实现弹框式编辑功能(实例代码)
2020/03/11 Javascript
[37:21]完美世界DOTA2联赛PWL S2 Inki vs Magma 第二场 11.22
2020/11/24 DOTA
nohup后台启动Python脚本,log不刷新的解决方法
2019/01/14 Python
django解决跨域请求的问题详解
2019/01/20 Python
Django使用redis缓存服务器的实现代码示例
2019/04/28 Python
机器学习实战之knn算法pandas
2019/06/22 Python
使用Django搭建web服务器的例子(最最正确的方式)
2019/08/29 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
2019/09/18 Python
python3 求约数的实例
2019/12/05 Python
Python爬虫如何应对Cloudflare邮箱加密
2020/06/24 Python
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
销售辞职报告范文
2014/01/12 职场文书
网上卖盒饭创业计划书
2014/01/26 职场文书
淘宝活动策划方案
2014/02/06 职场文书
喷漆工的岗位职责
2014/03/17 职场文书
区级文明单位申报材料
2014/05/15 职场文书
文明寝室标语
2014/06/13 职场文书
python中__slots__节约内存的具体做法
2021/07/04 Python