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 将逗号、空格、回车分隔的字符串转换为数组的函数
Jun 07 PHP
PHP删除HTMl标签的三种解决方法
Jun 30 PHP
php读取文件内容的三种可行方法示例介绍
Feb 08 PHP
ThinkPHP框架任意代码执行漏洞的利用及其修复方法
Jul 04 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
Aug 21 PHP
PHP将字符分解为多个字符串的方法
Nov 22 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
Nov 27 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
Jul 08 PHP
php及codeigniter使用session-cookie的方法(详解)
Apr 06 PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
Jun 09 PHP
LNMP部署laravel以及xhprof安装使用教程
Sep 14 PHP
php获得刚插入数据的id 的几种方法总结
May 31 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
全国FM电台频率大全 - 10 江苏省
2020/03/11 无线电
PHP常用的文件操作函数经典收藏
2013/04/02 PHP
IE8 中使用加速器(Activities)
2010/05/14 Javascript
使用jQuery Ajax功能时需要注意的一个问题(内存溢出)
2012/05/30 Javascript
js从10种颜色中随机取色实现每次取出不同的颜色
2013/10/23 Javascript
jquery序列化表单去除指定元素示例代码
2014/04/10 Javascript
IE 下Enter提交表单存在重复提交问题的解决方法
2014/05/04 Javascript
jQuery中remove()方法用法实例
2014/12/25 Javascript
使用js画图之圆、弧、扇形
2015/01/12 Javascript
js实现iframe自动自适应高度的方法
2015/02/17 Javascript
基于jQuery实现页面搜索功能
2020/03/26 Javascript
详解vue.js组件化开发实践
2016/12/14 Javascript
解决URL地址中的中文乱码问题的办法
2017/02/10 Javascript
让网站自动生成章节目录索引的多个js代码
2018/01/07 Javascript
Vue中在新窗口打开页面及Vue-router的使用
2018/06/13 Javascript
vue使用showdown并实现代码区域高亮的示例代码
2019/10/17 Javascript
[09:43]DOTA2每周TOP10 精彩击杀集锦vol.5
2014/06/25 DOTA
[08:54]DOTA2-DPC中国联赛 正赛 Aster vs LBZS 选手采访
2021/03/11 DOTA
python实现爬虫统计学校BBS男女比例(一)
2015/12/31 Python
从源码解析Python的Flask框架中request对象的用法
2016/06/02 Python
python使用两种发邮件的方式smtp和outlook示例
2017/06/02 Python
python中subprocess批量执行linux命令
2018/04/27 Python
Matplotlib中文乱码的3种解决方案
2018/11/15 Python
pandas的qcut()方法详解
2019/07/06 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
2020/02/20 Python
CSS3中使用RGBa来调节透明度的教程
2016/05/09 HTML / CSS
魅力惠奢品线上平台:MEI.COM
2016/11/29 全球购物
EMU Australia澳大利亚官网:澳大利亚本土雪地靴品牌
2019/07/24 全球购物
毕业生医学检验求职信
2013/10/16 职场文书
打架检讨书400字
2014/01/17 职场文书
展览会邀请函
2015/02/02 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
2015年业务工作总结范文
2015/04/10 职场文书
2015年大学生党员承诺书
2015/04/27 职场文书
使用GO语言实现Mysql数据库CURD的简单示例
2021/08/07 Golang
css样式important规则的正确使用方式
2022/06/10 HTML / CSS