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时间戳 strtotime()使用方法和技巧
Oct 29 PHP
php从字符串创建函数的方法
Mar 16 PHP
ThinkPHP发送邮件示例代码
Oct 08 PHP
PHP获取路径和目录的方法总结【必看篇】
Mar 04 PHP
PHP中时间加减函数strtotime用法分析
Apr 26 PHP
Yii2压缩PHP中模板代码的输出问题
Aug 28 PHP
php中file_get_contents()函数用法实例
Feb 21 PHP
PHP实现的用户注册表单验证功能简单示例
Feb 25 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
Mar 22 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式二图文详解
Apr 09 PHP
PHP中strtr与str_replace函数运行性能简单测试示例
Jun 22 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
Sep 11 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实现常见图片格式的水印和缩略图制作(面向对象)
2016/06/15 PHP
PHP购物车类Cart.class.php定义与用法示例
2016/07/20 PHP
PHP中session跨子域的三种实现方法
2016/07/25 PHP
实例介绍PHP删除数组中的重复元素
2019/03/03 PHP
javascript中的parseInt和parseFloat区别
2013/07/12 Javascript
如何解决Jquery库及其他库之间的$命名冲突
2013/09/15 Javascript
jquery实现tr元素的上下移动示例代码
2013/12/20 Javascript
在jquery boxy中添加百度地图坐标拾取注意流程
2014/04/03 Javascript
如何判断微信内置浏览器(通过User Agent实现)
2014/09/01 Javascript
javascript原型链继承用法实例分析
2015/01/28 Javascript
js根据鼠标移动速度背景图片自动旋转的方法
2015/02/28 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
2016/04/15 Javascript
PHP抓取HTTPS内容和错误处理的方法
2016/09/30 Javascript
javaScript实现滚动条事件详解
2020/03/24 Javascript
bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
2017/10/17 Javascript
JQuery选中select组件被选中的值方法
2018/03/08 jQuery
玩转Koa之核心原理分析
2018/12/29 Javascript
Python列表推导式的使用方法
2013/11/21 Python
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
2014/05/23 Python
从零学Python之入门(二)基本数据类型
2014/05/25 Python
Python实现一个简单的MySQL类
2015/01/07 Python
python查找指定具有相同内容文件的方法
2015/06/28 Python
详解Django框架中用context来解析模板的方法
2015/07/20 Python
pytorch masked_fill报错的解决
2020/02/18 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
Python3.7下安装pyqt5的方法步骤(图文)
2020/05/12 Python
python调用摄像头的示例代码
2020/09/28 Python
HTML5实现预览本地图片
2016/02/17 HTML / CSS
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
澳大利亚优质的家居用品和生活方式公司:Bed Bath N’ Table
2019/04/16 全球购物
敬老院活动总结
2014/04/28 职场文书
2015年复活节活动总结
2015/02/27 职场文书
公司奖励通知
2015/04/21 职场文书
幼儿园教师师德承诺书
2015/04/28 职场文书
2016年安康杯竞赛活动总结
2016/04/05 职场文书
使用Nginx搭载rtmp直播服务器的方法
2021/10/16 Servers