除除草,顺便说下采集新浪微博图片的事

很久没有来了,我连后台登陆地址都忘记了,囧~~

去年搭建了个微博美女(http://www.weibomn.com)站,采集新浪微博里面的美女图片,每小时自动更新,那时新浪微博还没有禁止外链,不用考虑空间问题,爽歪歪~~

2019年初,新浪微博图片禁止外链,整站图片均无法打开,再加上采集时没有进行过滤,有一些乱七八糟的内容,于是懒得弄了,最近抽了点时间,重新弄弄,呵呵~~

下面列举些用到的函数

将获得的数据格式化


json_decode($html, true);


创建多级目录

function mkdirs_2($path){
if(!is_dir($path)){
mkdirs_2(dirname($path));
if(!mkdir($path, 0777)){
return false;
}

下载图片并保存

function file_exists_S3($url,$save_dir,$mc)
{    
$state = @file_get_contents($url,0,null,0,1);
    if($state){        
    $filename = $mc.'.jpg';
        ob_start();
        readfile($url);
        $img = ob_get_contents();
        ob_end_clean();
        $size = strlen($img);
		$fp2=@fopen($save_dir.$filename,'a');       
        fwrite($fp2, $img);
        fclose($fp2);        
        return 1;
    } else{        
           return 0;
           }
    }

获取扩展名

function getExt($file){
return substr($file,strrpos($file,'.')+1);
}

最终达到的目的

获取到内容和图片地址,内容部分如果小于50个字符,则直接作为标题,否则按逗号分割,逗号前的前50个字符作为标题,如果图片和标题均不为空,则写入数据库,否则跳出。

最后发现,即使经过过滤,依然有些文章不想要,那就得手动删除了,可是删除文章时是不会删除图片的,于是又写了个删除文章自动删除文章图片的函数,再后来,又发现缓存更新不及时,于是又写了个自动定时清理缓存的函数,呵呵,现在总算是差不多了,今天下午,已经正式上线!

Last modification:June 28th, 2019 at 07:12 pm
如果觉得我的文章对你有用,请随意赞赏

Comment here is closed