爬取图片图片随机图

作者: maofun 分类: 代码 发布时间: 2020-07-25 20:35

最近在搞海不眠API,就打算搞一个随机小姐姐图的接口,先找到了一个大佬的接口,他说他的有10G,我只爬下来了5G多点,然后爬下来之后,不知道应该把图片放哪,先是想着放编码,结果发现编码的静态网站托管有大小限制,限制在了134217728字节,差不多是0.125G吧,所以就放到了Github,其实Github仓库也有限制,限制在1Git ,这是百度说的,所以我就把5G的图片分成了6份,放到了Github的6个仓库。
本来是想使用CDN + Coding的,放到Github发现使用CDN套上速度依然很慢,所以干脆使用jsDelivr来访问图片,然后用PHP写了个随机图:

<?php
header("content-type:image/gif");
$imgmin = mt_rand(1,6); //取1-6的随机数
$imgx = "img".$imgmin;
if ($imgmin == "1") {
    $imgf = mt_rand(1,1200);
}else {
    if ($imgmin == "2") {
        $imgf = mt_rand(1201,2400);
    }else {
        if ($imgmin == "3") {
            $imgf = mt_rand(2401,3200);
        }else {
            if ($imgmin == "4") {
                $imgf = mt_rand(3201,3800);
            }else {
                if ($imgmin == "5") {
                    $imgf = mt_rand(3801,4500);
                }else {
                    if ($imgmin == "6") {
                        $imgf = mt_rand(4501,5100);
                    }else {
                        $imgf = mt_rand(5101,5331);
                    }
                }
            }
        }
    }
}
$imgurl = "https://cdn.jsdelivr.net/gh/catiz/".$imgx."/".$imgf.".png";
$str=file_get_contents($imgurl);
echo $str;

不知道这种方法速度是不是加速的,但效果达到了bilibili ic_emoji_chan

2 条评论
  • Colorfulshadow

    2020年8月11日 上午7:08

    //获取句子文件的绝对路径
    $path = dirname(__FILE__);
    $file = file($path."/pics.txt");
    //随机读取一行
    $arr  = mt_rand( 0, count( $file ) - 1 );
    $url  = trim($file[$arr]);
    //输出内容
    #echo $url;
    //303跳转
    if (isset($url))
    {
    Header("HTTP/1.1 303 See Other");
    Header("Location: $url");
    exit;
    }
    ?>

    随机读取pics.txt中的一行来访问一张图片似乎更好?

  • Kor

    2020年9月5日 上午3:00

    搭建个onedrive图床,反代一下速度还不错,顺便一言存在onedrive那里,随便在论坛,贴吧放个图片,一言,每调用一次,相当于调用API接口,保持E5活跃。
    另github一个仓库容量限制多少没测试过,大概存了十万张图片30GB到一个仓库,后面因为add太多,4GB没有push成功,就没试了,一次1~2GB还是能push的

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注