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 Mysql编程之高级技巧
Aug 27 PHP
PHP对字符串的递增运算分析
Aug 08 PHP
php中防止恶意刷新页面的代码小结
Oct 31 PHP
基于php设计模式中单例模式的应用分析
May 15 PHP
一组PHP可逆加密解密算法实例代码
Jan 21 PHP
部署PHP时的4个配置修改说明
Oct 19 PHP
PHP 二维数组和三维数组的过滤
Mar 16 PHP
PHP实现的XML操作类【XML Library】
Dec 29 PHP
PHP基于curl模拟post提交json数据示例
Jun 22 PHP
thinkphp框架类库扩展操作示例
Nov 26 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
Aug 03 PHP
PHP中SESSION过期设置
Mar 09 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
给多个地址发邮件的类
2006/10/09 PHP
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
2008/11/18 PHP
php实现查询百度google收录情况(示例代码)
2013/08/02 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
2014/03/18 PHP
jQuery 事件队列调整方法
2009/09/18 Javascript
js解析与序列化json数据(二)序列化探讨
2013/02/01 Javascript
在图片上显示左右箭头类似翻页的代码
2013/03/04 Javascript
ExtJs设置GridPanel表格文本垂直居中示例
2013/07/15 Javascript
JQuery判断子iframe何时加载完成解决方案
2013/08/20 Javascript
JS性能优化笔记搜索整理
2013/08/21 Javascript
jQuery实现的一个自定义Placeholder属性插件
2014/08/11 Javascript
Javascript简单改变表单元素背景的方法
2015/07/15 Javascript
非常漂亮的相册集 使用jquery制作相册集
2016/04/28 Javascript
Bootstrap自定义文件上传下载样式
2016/05/26 Javascript
关于Function中的bind()示例详解
2016/12/02 Javascript
傻瓜式vuex语法糖kiss-vuex整理
2018/12/21 Javascript
Vue框架TypeScript装饰器使用指南小结
2019/02/18 Javascript
React路由鉴权的实现方法
2019/09/05 Javascript
vue项目中定义全局变量、函数的几种方法
2019/11/08 Javascript
[02:49]DAC2018决赛日TOP5 LGD开启黑暗之门绝杀VP
2018/04/08 DOTA
python调用java的Webservice示例
2014/03/10 Python
python根据给定文件返回文件名和扩展名的方法
2015/03/27 Python
Python AES加密模块用法分析
2017/05/22 Python
python os.listdir按文件存取时间顺序列出目录的实例
2018/10/21 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
Python实现查找数据库最接近的数据
2020/06/08 Python
基于Keras中Conv1D和Conv2D的区别说明
2020/06/19 Python
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
美国家居装饰购物网站:Amanda Lindroth
2020/03/25 全球购物
传播学专业毕业生自荐信
2013/11/04 职场文书
中专生自我鉴定范文
2013/12/19 职场文书
中学门卫岗位职责
2013/12/26 职场文书
一百条裙子读书笔记
2015/07/01 职场文书
致创业您:正能量激励人心句子(48条)
2019/08/15 职场文书
详解Go语言Slice作为函数参数的使用
2021/07/02 Golang
JS前端监控采集用户行为的N种姿势
2022/07/23 Javascript