LEN

PHP 批量抓取微信用户头像脚本
批量抓取图片 , 提供给我个图片url列表文件, 抓取代码如下:<?php $referer = 'http...
扫描右侧二维码阅读全文
04
2017/07

PHP 批量抓取微信用户头像脚本

批量抓取图片 , 提供给我个图片url列表文件, 抓取代码如下:

<?php
$referer = 'http://wx.qlogo.cn'; // 破解防盗链
$img_type_list = ['image/png' => 'png',  'image/jpeg' => 'jpg'];
$file = './img';
$tmp_file = './image/tmp';
$handle = @fopen($file, "r");
$i = 0;
while (($url = fgets($handle, 99999)) !== false) {
    $ch = curl_init();
    curl_setopt ($ch, CURLOPT_URL, trim($url));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);// 获取的信息以文件流的方式返回
    curl_setopt ($ch, CURLOPT_REFERER, $referer); // 模拟referer
    $img = curl_exec($ch);
    curl_close($ch);
    // 保存入临时文件中
    $ret = file_put_contents($tmp_file, $img);
    // 判断文件类型
    $imgInfo = getimagesize($tmp_file);
    $suffix = $img_type_list[$imgInfo['mime']] ? : false; // 后缀
    if (!$suffix) {
        echo '特殊类型'.$imgInfo['mime'] ,PHP_EOL;
        exit;
    }
    $file_name ='./image/'. implode('.', [$i, $suffix]);
    // 写入文件
    file_put_contents($file_name, $img);
    unset($img);
    echo $i,PHP_EOL;
    $i++;
}

@fclose($file);

中间有个坑 , 就是url地址做了防盗链, 直接file_get_contents 或 getimagesize 无法直接抓取 需要模拟referer

Last modification:July 4th, 2017 at 01:13 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment