zoukankan      html  css  js  c++  java
  • PHP批量抓取远程网页图片并存到本地实现方法和源码

    做为一个仿站工作者,当遇到网站有版权时甚至加密的时候,WEBZIP也熄火,怎么扣取网页上的图片和背景图片呢。有时候,可能会想到用火狐,这款浏览器好像一个强大的BUG,文章有版权,屏蔽右键,火狐丝毫也不会被影响。

    但是作为一个热爱php的开发者来说,更多的是喜欢自己动手。所以,我就写出了下面的一个源码,php远程抓取图片小程序。可以读取css文件并抓取css代码中的背景图片,下面这段代码也是针对抓取css中图片而编写的。

    <?php

    header("Content-Type: text/html; charset=utf-8");

            error_reporting(E_ERROR|E_WARNING);

    //全局配置

    $fromFile = "aaa.css";    //要抓取的文件

    $savePath = "ttttttttt";   //保存路径

    $fromDomain = "http://www.xxx.com/"; //要抓取的域名

    //读取css样式并且分离出所有image的url

    $str = file_get_contents($fromFile);

    $strArr = explode("url(",$str); 

    $i = 0;

    foreach($strArr as $val){

    $val1 = explode(")",$val);

    if(strpos($val1[0],'jpg')||strpos($val1[0],'png')||strpos($val1[0],'gif'))

    $imgUrl[$i++] = $val1[0];

    }

            //PS:上面可以用正则的,但是我觉得这样也不错

    //开始抓取

    foreach($imgUrl as $url){

    if($url=="") continue;

    $filename = $savePath.$url;

    $url = $fromDomain.$url;

    getImage($url,$filename);

    }

    function getImage($url,$filename){

    ob_start();

    $context = stream_context_create(

                 array (

             'http' => array (

             'follow_location' => false // don't follow redirects

             )

             )

    );

    //请确保php.ini中的fopen wrappers已经激活

    readfile( $url,false,$context);

    $img = ob_get_contents();

                    ob_end_clean();

    $fp2 = @fopen($filename,"a");

    fwrite($fp2,$img);

    fclose($fp2);

    echo $filename." ok √<br/>";

    }

    ?>

    然后没有意外的话,你会发现,你指定的文件夹下面已经满满的都是图片了,哈哈..

    文章出自:http://www.daixiaorui.com/read/8.html

  • 相关阅读:
    Django 2.0官方文档中文 渣翻 总索引(个人学习,欢迎指正)
    Deep Learning 之 最优化方法
    2018校招笔试真题汇总
    Java Swing 图形界面开发(目录)
    【目录】Spring 源码学习
    【剑指Offer学习】【所有面试题汇总】
    SSM框架学习思维导图
    关于P2P架构的网络游戏
    Styling FX Buttons with CSS
    JavaFx2.0中CSS的应用
  • 原文地址:https://www.cnblogs.com/yszr/p/8301205.html
Copyright © 2011-2022 走看看