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 相关文章推荐
PHP4引用文件语句的对比
Oct 09 PHP
实例(Smarty+FCKeditor新闻系统)
Jan 02 PHP
关于php fread()使用技巧
Jan 22 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
Jan 16 PHP
php代码中使用换行及(\n或\r\n和br)的应用
Feb 02 PHP
PHP中图片等比缩放的实例
Mar 24 PHP
PHP计算2点经纬度之间的距离代码
Aug 12 PHP
php如何连接sql server
Oct 16 PHP
php 数组字符串搜索array_search技巧
Jul 05 PHP
php实现微信支付之现金红包
May 30 PHP
php简单检测404页面的方法示例
Aug 23 PHP
php变量与字符串的增删改查操作示例
May 07 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 a simple smtp class
2007/11/26 PHP
使用PHP 5.0创建图形的巧妙方法
2010/10/12 PHP
PHP获取用户的浏览器与操作系统信息的代码
2012/09/04 PHP
php判断终端是手机还是电脑访问网站的思路及代码
2013/04/24 PHP
Laravel 5.3 学习笔记之 配置
2016/08/28 PHP
PHP编程实现阳历转换为阴历的方法实例
2017/08/08 PHP
PHP 出现 http500 错误的解决方法
2021/03/09 PHP
fancybox modal的完美解决(右上的X)
2012/10/30 Javascript
JavaScript开发人员的10个关键习惯小结
2014/12/05 Javascript
jQuery插件animateSlide制作多点滑动幻灯片
2015/06/11 Javascript
jquery控制显示服务器生成的图片流
2015/08/04 Javascript
详解javascript传统方法实现异步校验
2016/01/22 Javascript
Javascript之Number对象介绍
2016/06/07 Javascript
JavaScript实现url参数转成json形式
2016/09/25 Javascript
运用js教你轻松制作html音乐播放器
2020/04/17 Javascript
深入理解vue中slot与slot-scope的具体使用
2018/01/26 Javascript
处理JavaScript值为undefined的7个小技巧
2020/07/28 Javascript
JavaScript Image对象实现原理实例解析
2020/08/26 Javascript
python过滤字符串中不属于指定集合中字符的类实例
2015/06/30 Python
Ubuntu下安装PyV8
2016/03/13 Python
遗传算法之Python实现代码
2017/10/10 Python
Python打印输出数组中全部元素
2018/03/13 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
2018/09/19 Python
Python装饰器基础概念与用法详解
2018/12/22 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
2019/07/12 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
2020/04/07 Python
Django Model层F,Q对象和聚合函数原理解析
2020/11/12 Python
美国折扣网站:jClub
2017/08/07 全球购物
澳大利亚设计师服装在线:MISHA
2019/10/07 全球购物
实习单位接收函模板
2014/01/10 职场文书
诚信考试倡议书
2014/04/15 职场文书
战略性融资合作协议书范本
2014/10/17 职场文书
2016年大学生实习单位评语
2015/12/01 职场文书
一文搞清楚MySQL count(*)、count(1)、count(col)区别
2022/03/03 MySQL
mysql 8.0.27 绿色解压版安装教程及配置方法
2022/04/20 MySQL
MySQL中dd::columns表结构转table过程及应用详解
2022/09/23 MySQL