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
PHP5 面向对象(学习记录)
Dec 02 PHP
ThinkPHP实现跨模块调用操作方法概述
Jun 20 PHP
php压缩和解压缩字符串的方法
Mar 14 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
Jan 07 PHP
PHP中Cookie的使用详解(简单易懂)
Apr 28 PHP
PHP单例模式与工厂模式详解
Aug 29 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
Oct 25 PHP
php获取手机端的号码以及ip地址实例代码
Sep 12 PHP
PDO::inTransaction讲解
Jan 28 PHP
PHP上传图片到数据库并显示的实例代码
Dec 20 PHP
基于PHP实现邮箱验证激活过程详解
Oct 28 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中通过ADO调用Access数据库的方法测试不通过
2006/12/31 PHP
php数组函数序列之array_flip() 将数组键名与值对调
2011/11/07 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
2013/06/07 PHP
你可能不知道PHP get_meta_tags()函数
2014/05/12 PHP
YII框架http缓存操作示例
2019/04/29 PHP
php中目录操作opendir()、readdir()及scandir()用法示例
2019/06/08 PHP
js 格式化时间日期函数小结
2010/03/20 Javascript
JS图片根据鼠标滚动延时加载的实例代码
2013/07/13 Javascript
js实现iframe自动自适应高度的方法
2015/02/17 Javascript
javascript实现textarea中tab键的缩排处理方法
2015/06/26 Javascript
Javascript刷新窗口方法小结
2015/10/21 Javascript
jquery判断当前浏览器的实现代码
2015/11/07 Javascript
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
Bootstrap php制作动态分页标签
2016/12/23 Javascript
jQuery表单插件ajaxForm实例详解
2017/01/17 Javascript
基于vue实现分页/翻页组件paginator示例
2017/03/09 Javascript
JQuery Ajax 异步操作之动态添加节点功能
2017/05/24 jQuery
讲解vue-router之什么是编程式路由
2018/05/28 Javascript
详解Angular操作cookies方法
2018/06/01 Javascript
JS获取子节点、父节点和兄弟节点的方法实例总结
2018/07/06 Javascript
Node.js模拟发起http请求从异步转同步的5种用法
2018/09/26 Javascript
webpack-url-loader 解决项目中图片打包路径问题
2019/02/15 Javascript
vue实现表格过滤功能
2019/09/27 Javascript
vue等两个接口都返回结果再执行下一步的实例
2020/09/08 Javascript
python操作MongoDB基础知识
2013/11/01 Python
Python字符串和文件操作常用函数分析
2015/04/08 Python
Python使用numpy实现BP神经网络
2018/03/10 Python
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
Python3.6日志Logging模块简单用法示例
2018/06/14 Python
python得到电脑的开机时间方法
2018/10/15 Python
Tensorflow中的dropout的使用方法
2020/03/13 Python
新闻网站实习自我鉴定
2013/09/25 职场文书
幼儿园校园小喇叭广播稿
2014/10/17 职场文书
小兵张嘎观后感
2015/06/03 职场文书
2016年基层党组织公开承诺书
2016/03/25 职场文书
MySQL大小写敏感的注意事项
2021/05/24 MySQL