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中调用JAVA
Oct 09 PHP
简单的过滤字符串中的HTML标记
Dec 25 PHP
php 删除记录实现代码
Mar 12 PHP
简单的移动设备检测PHP脚本代码
Feb 19 PHP
php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
Oct 31 PHP
shopex主机报错误请求解决方案(No such file or directory)
Dec 27 PHP
PHP中上传多个文件的表单设计例子
Nov 19 PHP
php生成年月日下载列表的方法
Apr 24 PHP
php开发微信支付获取用户地址
Oct 04 PHP
CI框架集成Smarty的方法分析
May 17 PHP
Yii2.0中的COOKIE和SESSION用法
Aug 12 PHP
laravel5实现微信第三方登录功能
Dec 06 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
第八节 访问方式 [8]
2006/10/09 PHP
php调整gif动画图片尺寸示例代码分享
2013/12/05 PHP
php模拟post上传图片实现代码
2016/06/24 PHP
php获取今日开始时间和结束时间的方法
2017/02/27 PHP
php自定义函数实现统计中文字符串长度的方法小结
2017/04/15 PHP
js 距离某一时间点时间是多少实现代码
2013/10/14 Javascript
js获取IP地址的方法小结
2014/07/01 Javascript
jquery正则表达式验证(手机号、身份证号、中文名称)
2015/12/31 Javascript
jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法
2016/07/27 Javascript
AngularJS中transclude用法详解
2016/11/03 Javascript
js实现楼层导航功能
2017/02/23 Javascript
AngularJs 常用的过滤器
2017/05/15 Javascript
JavaScript变量作用域_动力节点Java学院整理
2017/06/27 Javascript
JavaScript中一些特殊的字符运算
2017/08/17 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
Node.js使用MySQL连接池的方法实例
2018/02/11 Javascript
JS实现运动缓冲效果的封装函数示例
2018/02/18 Javascript
详解keep-alive + vuex 让缓存的页面灵活起来
2019/04/19 Javascript
微信小程序音乐播放器开发
2019/11/20 Javascript
微信小程序 bindtap 传参的实例代码
2020/02/21 Javascript
vue总线机制(bus)知识点详解
2020/05/10 Javascript
python3获取当前文件的上一级目录实例
2018/04/26 Python
解决tensorflow1.x版本加载saver.restore目录报错的问题
2018/07/26 Python
浅谈python实现Google翻译PDF,解决换行的问题
2018/11/28 Python
对python3 Serial 串口助手的接收读取数据方法详解
2019/06/12 Python
Python基础之列表常见操作经典实例详解
2020/02/26 Python
Django Admin 上传文件到七牛云的示例代码
2020/06/20 Python
python 写一个性能测试工具(一)
2020/10/24 Python
详解css3 mask遮罩实现一些特效
2018/10/24 HTML / CSS
西班牙著名的珠宝首饰品牌:P D PAOLA
2018/09/15 全球购物
国外的一些J2EE面试题一
2012/10/13 面试题
应用电子技术专业个人求职信
2013/09/21 职场文书
家长对老师的评语
2014/04/18 职场文书
银行竞聘报告范文
2014/11/06 职场文书
社区服务活动感想
2015/08/11 职场文书
公司转让协议书
2016/03/19 职场文书