spiderdaemon = SPIDER_WEIBO_DATA; $this->processnum = $GLOBALS['DAEMON_NUMLIMIT'][SPIDER_WEIBO_DATA]; } public function deal() { $obj = new mSpider(); $rdobj = $obj->initRedis(); $ipinfo = $rdobj->get(_RQ_SPIDER_USE_IP); $ipdata = json_decode($ipinfo, true); if (!$ipinfo && $rdobj->llen($this->task_key) + 0 >= 0) { $ipdata = $obj->getZmhttpIp(_RQ_SPIDER_USE_IP); } if (empty($ipdata)) { sleep(2); return false; } $rq_data = $rdobj->rpop($this->task_key); if (empty($rq_data)) exit(); // $ipdata['ip'] = '127.0.0.1'; // $ipdata['port'] = '3306'; $obj->proxy_ip = $ipdata['ip']; $obj->proxy_port = $ipdata['port']; $baselog = $rq_data . "|" . $ipdata['ip'] . "|" . $ipdata['port'] . "|" . PROC_CODE . "|"; $obj->writeLog('spider', $this->spiderdaemon . '_video_progress.log', $baselog); $mweibo = new mWeibo(); $data = $mweibo->getWeiboById($rq_data); if(empty($data['video_url'])) return false; $detail= $obj->getWapWeibo($data['wid']); if(!$detail) { $rdobj->lpush($this->task_key, $rq_data); $obj->writeLog('spider', $this->spiderdaemon . '_video_error.log', $baselog.$data['wid'].'|'.$obj->getError()); return false; } if($detail == 'error'){ $rdobj->lpush($this->task_key, $rq_data); $obj->writeLog('spider', $this->spiderdaemon . '_video_error.log', $baselog.$data['wid'].'|获取数据为空'); return false; } $obj->writeLog('spider', $this->spiderdaemon . '_video_success.log', $baselog.$data['wid']); $aliobj = new mAliyunOSS(); //保存视频 $savepath = $mweibo->getWeiboDataVideoSavePath($data['wid'], $data['created_at']); $is_exist = $aliobj->isExist(ALIYUN_OSS_BUCKET_WEIBO_DATA, $savepath); if (!$is_exist) { $videoData = $obj->getWeiboVideo($detail['video_url']); if(!$videoData){ $rdobj->lpush($this->task_key, $rq_data); $obj->writeLog('spider', $this->spiderdaemon . '_video_get_error.log', $baselog.$data['wid'].'|下载失败|'.$detail['video_url'].'|'.$obj->curl_err); return false; } $res = $aliobj->simpleUploadStr(ALIYUN_OSS_BUCKET_WEIBO_DATA, $savepath, $videoData); if(!$res) { $rdobj->lpush($this->task_key, $rq_data); $obj->writeLog('spider', $this->spiderdaemon . '_video_get_error.log', $baselog.$data['wid'].'|上传失败|'.$aliobj->getError()); } } if(empty($detail['video_cover_url'])){ $obj->writeLog('spider', $this->spiderdaemon . '_video_success.log', $baselog.$data['wid']); return true; } $cover_name = !empty($detail['video_cover']) ? $detail['video_cover'] : $data['wid']; $cover_savepath = $mweibo->getWeiboDataPicSavePath($cover_name, $data['created_at']); $is_exist = $aliobj->isExist(ALIYUN_OSS_BUCKET_WEIBO_DATA, $cover_savepath); if(!$is_exist){ $params = array(); $headers = array( "Referer: https://weibo.com" ); $imgageData = $obj->getRequest($detail['video_cover_url'], $params, $headers); if(!$imgageData){ $obj->writeLog('spider', $this->spiderdaemon . '_video_cover_error.log', $baselog.$data['wid'].'|下载失败|'.$detail['video_cover_url']); return false; } $res = $aliobj->simpleUploadStr(ALIYUN_OSS_BUCKET_WEIBO_DATA, $cover_savepath, $imgageData); if(!$res) { $obj->writeLog('spider', $this->spiderdaemon . '_video_cover_error.log', $baselog.$data['wid'].'|上传失败|'.$aliobj->getError()); } $res = $mweibo->updateWeibo($data['id'], array('video_cover' => $cover_name)); if(!$res) { $obj->writeLog('spider', $this->spiderdaemon . '_video_cover_error.log', $baselog.$data['wid'].'|更新失败|'.$mweibo->getError()); } } $obj->writeLog('spider', $this->spiderdaemon . '_video_cover_success.log', $baselog.$data['wid']); return true; } } new getWeiboVideo();