CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法_php实例

本文实例讲述了CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法。分享给大家供大家参考。具体如下:

因为某网站看图比较坑爹,要一页一页的翻页。。。。所以。。。。就写了这么个东西

(我是产品不是程序员)运行速度简直无法忍受,而且经常会有错误发生,所以希望大家帮忙改进(PHP)。

当然也欢迎看到PYTHON,GOLANG的版本~~^_^

1. controllers:

$this->load->helper('date');
$this->load->helper('phpQuery');
//我是把phpQuery单文件放到helper里了

2. view:

这里只是为了快速出产品,所以直接在VIEW里写的代码,请无视变量名。。。

<?php
$imageslist = phpQuery::newDocumentFile('http://g.e-hentai.org/g/xxxxx/xxxxxxx/');
//首页
$pn = 1;//页数
$ps = $imageslist->find('.ptt td a');//从首页抓页面导航
//从页面导航开始获取页面内容
foreach($ps as $p)
{
  echo '第'.$pn++.'页:<a href="'.pq($p)->attr("href").'"/></br>';
  $imagesnow = phpQuery::newDocumentFile(pq($p)->attr("href"));
  //单页内容
  $images = $imagesnow->find('#gdt a');//抓取图片页列表
  foreach($images as $image)
  {
    echo '<a href="'.pq($image,$imagesnow)->attr("href").'"/></br>';
    $imagebigs = phpQuery::newDocumentFile(pq($image,$imagesnow)->attr("href"));
    //获取单图片页地址
    echo '<img src="'.$imagebigs->find('#i3 img')->attr('src').'"></br>';//输出图片
    ob_start();
    readfile($imagebigs->find('#i3 img')->attr('src'));
    $img = ob_get_contents();
    ob_end_clean();
    $filename='img/'.now().'.jpg';
    $f=fopen($filename,'a');
    fwrite($f,$img);
    fclose($f);
  }
}
?>

希望本文所述对大家基于CodeIgniter的php程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索下载
, codeigniter
, 网站
抓取图片
codeigniter实例教程、codeigniter 分页实例、codeigniter开发实例、codeigniter 网站实例、codeigniter 实例,以便于您获取更多的相关知识。

时间: 2024-09-19 08:54:14

CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法_php实例的相关文章

CodeIgniter实现更改view文件夹路径的方法_php实例

控制view文件夹路径的代码:system/core/loader.php public function add_package_path($path, $view_cascade=TRUE) { $path = rtrim($path, '/').'/'; array_unshift($this->_ci_library_paths, $path); array_unshift($this->_ci_model_paths, $path); array_unshift($this->

win8使用IE浏览器查看网页会出现自动下载HTML文件对话框的解决方法

  win8使用IE浏览器查看网页会出现自动下载HTML文件对话框的解决方法.大家都知道windows操作系统内置IE浏览器,Win8系统中很多用户会使用IE浏览器查看网页,通常网页会有很多的超链接可以点击进入下一个网页,不过有的Win8系统用户反馈点击后出现自动下载HTML文件的对话框,而不是打开网页,那么遇到这样的情况如何解决呢?本文教程小编分享几种解决方法,有需要的用户可以往下学习. 方法一: 1.按下WIN+R调出运行然后输入: regsvr32 msxml3.dll 回车; 2.重新打

php版微信开发之接收消息,自动判断及回复相应消息的方法_php实例

本文实例讲述了php版微信开发之接收消息,自动判断及回复相应消息的方法.分享给大家供大家参考,具体如下: 微信的api现在己经强大到可以随意调用我们网站或指定数据库的内容进行自能回复现推送消息了,这里就来给大家介绍一个微信开发的笔记. 发送1,2,3,7测试相应的消息,菜单模式需要升级为服务号,或者订阅人数超过500以上. 1. 用户发送的消息都是通过你提交的开发者URL来接收,这里订阅号就可以搞定,发送过来的都是xml格式数据,需要解析,代码如下: $data = $GLOBALS["HTTP

PHP __autoload函数(自动载入类文件)的使用方法_php技巧

这也是OO设计的基本思想之一.在PHP5之前,如果需要使用一个类,只需要直接使用include/require将其包含进来即可.下面是一个实际的例子: 复制代码 代码如下: class ClassA{ public function __construct(){ echo "ClassA load success!"; } } //定义一个类ClassA,文件名为ClassA.php class ClassA{ public function __construct(){ echo &

按键精灵设置自动清除Prefetch文件夹内容脚本的图文步骤

  按键精灵是一款功能非常强大的软件,网友可以通过设置鼠标与键盘的动作脚本,让鼠标与键盘替自己完成非常多重复而繁琐的工作.而今天,小编将为大家讲解的是,使用按键精灵设置自动清除Prefetch文件夹内容的方法,希望大家会喜欢! WindowsXP系统文件夹下有一个Prefetch文件夹,它是windows为了加快运行速度而使用的预读文件夹,不过时间久了Prefetch文件夹内会堆放了许多垃圾,特别是如果用户经常更换电脑配置的话,系统以前记录的进程资料就没有任何用处了.文件太多反而会影响系统速度,

myeclipse 2014创建动态网站的时候不能自动生成 xml文件,是需要自己创建一个吗?

问题描述 myeclipse 2014创建动态网站的时候不能自动生成 xml文件,是需要自己创建一个吗? 2013就会自动生成..xml文件是必要的吗...书上说用 myeclipse可以不用管xml,可是那用什么路径访问啊 解决方案 一般创建web工程后会自动创建web.xml的;如果没有的话,在创建web项目时有个窗口有个生成web.xml的项你要勾选上才会生成这个的; 如果还是没有的话,就手动在目录下创建一个就行了: 如果回答对您有帮助,请采纳 解决方案二: 解决方案三: web.xml对

ASP中自动生成多级文件夹的函数(使用FSO)

FSO中有个方法是CreateFolder,但是这个方法只能在其上一级文件夹存在的情况下创建新的文件夹,所以我就写了一个自动创建多级文件夹的函数,在生成静态页面等方面使用非常方便.   函数:   ' --------------------------------   ' 自动创建指定的多级文件夹   ' strPath为绝对路径   ' 引用请保留版权   ' by im286_Anjer   ' 2005-4-3   Function AutoCreateFolder(strPath) '

使用FSO自动创建多级文件夹

当我们用fso来生成静态页面的时候,通常都会希望生成的位置能整洁,明了.比如按年月日来划分,那么就会需要得到一个形如:"2009/6/"这样或者更多级的文件夹,所以我就写了一个自动创建多级文件夹的函数,在生成静态页面等方面使用非常方便. 当我们用fso来生成静态页面的时候,通常都会希望生成的位置能整洁,明了.比如按年月日来划分,那么就会需要得到一个形如:"2009/6/"这样或者更多级的文件夹,所以我就写了一个自动创建多级文件夹的函数,在生成静态页面等方面使用非常方

使用FSO自动创建多级文件夹的函数

开启FSO权限 在 开始-"运行"中执行regsvr32.exe scrrun.dll即可.如想关闭FSO权限,在上述命令中加/u参数.注册表中的键值位置:HKEY_CLASS_BOOT\F.S.O .FSO中有个方法是CreateFolder,但是这个方法只能在其上一级文件夹存在的情况下创建新的文件夹,所以我就写了一个自动创建多级文件夹的函数,在生成静态页面等方面使用非常方便.函数: 以下为引用的内容:' -------------------------------- ' 自动创建