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:风雨欲来 路在何方?
Oct 09 PHP
实现了一个PHP5的getter/setter基类的代码
Feb 25 PHP
PHP下用rmdir实现删除目录的三种方法小结
Apr 20 PHP
PHP HTML代码串截取代码
Dec 29 PHP
ThinkPHP模板判断输出Present标签用法详解
Jun 30 PHP
一个简洁实用的PHP缓存类完整实例
Jul 26 PHP
基础的WordPress插件制作教程
Nov 24 PHP
php自动加载方式集合
Apr 04 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
May 17 PHP
浅析php如何实现爬取数据原理
Sep 27 PHP
PHP PDOStatement::execute讲解
Jan 31 PHP
KindEditor在php环境下上传图片功能集成的方法示例
Jul 20 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
2020年4月放送决定!第2期TV动画《邪神酱飞踢》视觉图&主题曲情报公开!
2020/03/06 日漫
PHP 的 __FILE__ 常量
2007/01/15 PHP
PHP Session变量不能传送到下一页的解决方法
2009/11/27 PHP
php支付宝手机网页支付类实例
2015/03/04 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
js动态创建表格,删除行列的小例子
2013/07/20 Javascript
Json实现异步请求提交评论无需跳转其他页面
2014/10/11 Javascript
使用node.js 获取客户端信息代码分享
2014/11/26 Javascript
jQuery实现切换字体大小的方法
2015/03/10 Javascript
关于JS中prototype的理解
2015/09/07 Javascript
Nodejs如何搭建Web服务器
2016/03/28 NodeJs
Bootstrap实现带动画过渡的弹出框
2016/08/09 Javascript
jQuery自定义元素右键点击事件(实现案例)
2017/04/28 jQuery
详解angularJS动态生成的页面中ng-click无效解决办法
2017/06/19 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
2018/09/07 jQuery
解决vuecli3.0热更新失效的问题
2018/09/19 Javascript
JavaScript显式数据类型转换详解
2019/03/18 Javascript
教你如何用Node实现API的转发(某音乐)
2019/09/20 Javascript
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
2019/11/07 jQuery
python调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件
2014/08/15 Python
python编程线性回归代码示例
2017/12/07 Python
python保存二维数组到txt文件中的方法
2018/11/15 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
Python 网络编程之TCP客户端/服务端功能示例【基于socket套接字】
2019/10/12 Python
Pyside2中嵌入Matplotlib的绘图的实现
2021/02/22 Python
HTML5页面直接调用百度地图API获取当前位置直接导航目的地的实现代码
2018/03/02 HTML / CSS
澳大利亚100%丝绸多彩度假装商店:TheSwankStore
2019/09/04 全球购物
澳大利亚人信任的清洁平台,您的私人管家:Jarvis
2020/12/25 全球购物
大学生家政服务项目创业计划书
2014/01/30 职场文书
2015年元旦演讲稿
2014/09/12 职场文书
房屋租赁协议书(标准版)
2014/10/02 职场文书
2014年乡镇人大工作总结
2014/11/25 职场文书
重阳节慰问信
2015/02/15 职场文书
2015年医院创卫工作总结
2015/04/22 职场文书
2015年挂职干部工作总结
2015/05/14 职场文书
Win10加载疑难解答时出错发生意外错误的解决方法
2022/07/07 数码科技