×

php 通过CSS文件抓取图片

chen chen 发表于2021-08-20 09:05:32 浏览890 评论0

抢沙发发表评论

看到一个喜欢的网站,想抓点图片素材,一个一个复制盛世费劲,分析CSS发现图片元素都写在CSS里面。就不要怪我了。
帖代码

把css内容复制到到 $str中  或者 file_get_contents  CSS的路径 也可以
$str='@charset "utf-8";
body {
    width: 100%;
    height: 100%;
    background: url(../images/bg.jpg) no-repeat;
    .......
';


正则匹配

  preg_match_all('/url\((.*?)\)/u',$str,$match);

循环抓取

foreach ($match[1] as $key => $value) {
     
      $value=str_replace('../','对方网站url/',$value);
      $base = basename($value);

        $urlds1=file_get_contents($value);     
        $nweimg1='images/'.$base;
        write_file($nweimg1,$urlds1);
      
    }

中间用到的方法write_file

function write_file($filename,$data,$method="rb+",$iflock=1){
  @touch($filename);
  $handle=@fopen($filename,$method);
  if($iflock){
    @flock($handle,LOCK_EX);
  }
  @fputs($handle,$data);
  if($method=="rb+") @ftruncate($handle,strlen($data));
  @fclose($handle);
  @chmod($filename,0777); 
  if( is_writable($filename) ){
    return 1;
  }else{
    return 0;
  }
}


群贤毕至

访客