spiderdaemon = SPIDER_WEIBO_BEHAVIOR; $this->processnum = $GLOBALS['DAEMON_NUMLIMIT'][SPIDER_WEIBO_BEHAVIOR]; } public function deal() { $this->is_change_ip = false; $obj = new mSpider(); $rdobj = $obj->initRedis(); $ipinfo = $rdobj->get(_RC_SPIDER_USE_IP); $ipdata = json_decode($ipinfo, true); if (!$ipinfo && PROC_CODE == 0 && $rdobj->llen($this->task_key) + 0 >= 0) { $ipdata = $obj->getZmhttpIp(_RC_SPIDER_USE_IP); } if (empty($ipdata)) { sleep(2); return false; } $obj->proxy_ip = $ipdata['ip']; $obj->proxy_port = $ipdata['port']; $rq_data = $rdobj->rpop($this->task_key); if (empty($rq_data)) { sleep(60); return false; } $baselog = $rq_data . "|" . $ipdata['ip'] . "|" . $ipdata['port'] . "|" . PROC_CODE . "|"; //数据格式不正确 $data = json_decode($rq_data, true); if(empty($data['type']) || empty($data['uid']) || empty($data['page']) || empty($data['date'])) return false; //队列数据已过期 $date = date("Y-m-d"); if($data['date'] != $date) return false; $cookie = $rdobj->get(_RC_WEIBO_LOGIN_COOKIE); if(empty($cookie)) $cookie = WEIBO_LOGIN_COOKIE; if($data['type'] == 1){ //原创数据 $res = $obj->spiderBehaviorOriginalData($cookie, $data['uid'], $data['page']); }else{ //转发数据 $res = $obj->spiderBehaviorForwardData($cookie, $data['uid'], $data['page']); } if (!$res) { $error = $obj->getError(); if($error == 'cookie失效') $obj->sendMail(array('1026652509@qq.com'), date('Y年m月d日', time()) . '-微博数据抓取', $data['info']); if ($obj->is_change_ip) { // 0进程监控更换ip if (PROC_CODE == 0) $rdobj->del(_RC_SPIDER_USE_IP); } $obj->writeLog('spider', $this->spiderdaemon.'_fail.log', $baselog.$error); $rdobj->lpush($this->task_key, $rq_data); return false; } $obj->writeLog('spider', $this->spiderdaemon . '_success.log', $baselog); return true; } } new getWeiboBehavior();