diff --git a/application/config/config.php b/application/config/config.php index 013dc95b..df5cd0d1 100644 --- a/application/config/config.php +++ b/application/config/config.php @@ -364,7 +364,7 @@ $config['proxy_ips'] = ''; //各站信息组和人员权限分配 $config['site'] = array( 'cht' => array('site_code' => 'cht', 'site_id' => 14, 'site_lgc' => '1', 'site_url' => 'https://www.chinahighlights.com', 'site_image_url' => '//images.chinahighlights.com', 'site_authors' => array('zzy', 'spt', 'yl', 'gavin', 'sw', 'zl', 'wbl', 'yqw', 'lf', 'zhm', 'pkl'), 'site_user' => ',ycc,lmr, zyh,J,shw,B,zzy,WJJ,Tony,pcf,zxy,wst,wz,v,S,yyg,yxd,wj,sw,yl,hx,spt,wmr,zl,syt,gavin,zm,htc,yqw,bhn,lmj,wbl,yqw,LYY,zhm,'), - 'gm' => array('site_code' => 'gm', 'site_id' => 22, 'site_lgc' => '4', 'site_url' => 'http://www.chinarundreisen.com', 'site_image_url' => '//bilder.chinarundreisen.com', 'site_authors' => array('DX', 'X', 'K', 'Lan', 'lmr', 'zyh', 'ZYHL', 'TDJ'), 'site_user' => ',ycc,lmr,B,zyh,DX,X,K,htc,zm,bhn,Lan,Tony,zyh,J,v,ZYHL,TDJ,LYY,shw,'), + 'gm' => array('site_code' => 'gm', 'site_id' => 22, 'site_lgc' => '4', 'site_url' => 'https://www.chinarundreisen.com', 'site_image_url' => '//bilder.chinarundreisen.com', 'site_authors' => array('DX', 'X', 'K', 'Lan', 'lmr', 'zyh', 'ZYHL', 'TDJ'), 'site_user' => ',ycc,lmr,B,zyh,DX,X,K,htc,zm,bhn,Lan,Tony,zyh,J,v,ZYHL,TDJ,LYY,shw,'), 'vc' => array('site_code' => 'vc', 'site_id' => 30, 'site_lgc' => '5', 'site_url' => 'https://www.voyageschine.com', 'site_image_url' => '//images.voyageschine.com', 'site_authors' => array('JE', 'kq', 'lya', 'lyz', 'zyh'), 'site_user' => ',ycc,lmr, zyh,JE,htc,kq,lya,bhn,Tony,zyh,B,J,lyz,LYY,'), 'jp' => array('site_code' => 'jp', 'site_id' => 88, 'site_lgc' => '3', 'site_url' => 'https://www.arachina.com', 'site_image_url' => '//images.arachina.com', 'site_authors' => array('hql', 'LLM', 'SHX', 'lmr', 'zyh', 'zb'), 'site_user' => ',ycc,lmr, zyh,hql,LLM,SHX,htc,zpl,Tony,zyh,J,B,zb,LYY,'), 'vac' => array('site_code' => 'vac', 'site_id' => 95, 'site_lgc' => '6', 'site_url' => 'https://www.viaje-a-china.com', 'site_image_url' => '//imagenes.viaje-a-china.com', 'site_authors' => array('I', 'cyt', 'lmr', 'zyh', 'LLM'), 'site_user' => ',ycc,lmr, zyh,I,cyt,htc,bhn,Tony,zyh,B,J,LLM,LYY,'), @@ -372,11 +372,11 @@ $config['site'] = array( 'ru' => array('site_code' => 'ru', 'site_id' => 102, 'site_lgc' => '7', 'site_url' => 'https://www.chinahighlights.ru', 'site_image_url' => '//images.chinahighlights.ru', 'site_authors' => array('xjj', 'zyy'), 'site_user' => ',ycc,lmr, zyh,xjj,htc,DX,zyy,bhn,Tony,zyh,B,J,LYY,'), 'wt' => array('site_code' => 'wt', 'site_id' => 172, 'site_lgc' => '2', 'site_url' => 'http://www.iiiyooo.com', 'site_image_url' => '', 'site_authors' => array('ylh', 'lfj', 'wx', 'lzh', 'shw', 'lx'), 'site_user' => ',ycc,lmr, zyh,ylh,lfj,wx,lzh,shw,lx,bhn,B,J,'), 'tbt' => array('site_code' => 'tbt', 'site_id' => 169, 'site_lgc' => '1', 'site_url' => 'http://www.tibettravel.info', 'site_image_url' => '/images', 'site_authors' => array('wj', 'sfx'), 'site_user' => ',ycc,wj,bhn,wx,lzh,lfj,hwt,thf,sfx,J,ZP,'), - 'sht' => array('site_code' => 'sht', 'site_id' => 96, 'site_lgc' => '1', 'site_url' => 'http://www.shanghaihighlights.com', 'site_image_url' => '//images.shanghaihighlights.com', 'site_authors' => array('vz', 'sfx'), 'site_user' => ',ycc,wj,bhn,wx,lzh,lfj,hwt,thf,vz,sfx,J,ZP,LYY,'), - 'yz' => array('site_code' => 'yz', 'site_id' => 89, 'site_lgc' => '1', 'site_url' => 'http://www.yangtzeriver.org', 'site_image_url' => '//images.yangtzeriver.org', 'site_authors' => array('wj', 'vi', 'sfx'), 'site_user' => ',ycc,wj,bhn,hwt,thf,vi,sfx,J,ZP,lyy,'), - 'gl' => array('site_code' => 'gl', 'site_id' => 90, 'site_lgc' => '1', 'site_url' => 'http://www.guilinchina.net', 'site_image_url' => '//images.guilinchina.net', 'site_authors' => array('vi', 'sfx'), 'site_user' => ',ycc,vi,bhn,hwt,thf,sfx,J,ZP,lyy,'), + 'sht' => array('site_code' => 'sht', 'site_id' => 96, 'site_lgc' => '1', 'site_url' => 'https://www.shanghaihighlights.com', 'site_image_url' => '//images.shanghaihighlights.com', 'site_authors' => array('vz', 'sfx'), 'site_user' => ',ycc,wj,bhn,wx,lzh,lfj,hwt,thf,vz,sfx,J,ZP,LYY,'), + 'yz' => array('site_code' => 'yz', 'site_id' => 89, 'site_lgc' => '1', 'site_url' => 'https://www.yangtzeriver.org', 'site_image_url' => '//images.yangtzeriver.org', 'site_authors' => array('wj', 'vi', 'sfx'), 'site_user' => ',ycc,wj,bhn,hwt,thf,vi,sfx,J,ZP,lyy,'), + 'gl' => array('site_code' => 'gl', 'site_id' => 90, 'site_lgc' => '1', 'site_url' => 'https://www.guilinchina.net', 'site_image_url' => '//images.guilinchina.net', 'site_authors' => array('vi', 'sfx'), 'site_user' => ',ycc,vi,bhn,hwt,thf,sfx,J,ZP,lyy,'), 'mbj' => array('site_code' => 'mbj', 'site_id' => 98, 'site_lgc' => '1', 'site_url' => 'http://www.mybeijingchina.com', 'site_image_url' => '//images.mybeijingchina.com', 'site_authors' => array('vz', 'sfx'), 'site_user' => ',ycc,vz,bhn,hwt,thf,sfx,J,ZP,'), - 'ct' => array('site_code' => 'ct', 'site_id' => 1000, 'site_lgc' => '104', 'site_url' => 'http://www.chinatravel.com', 'site_image_url' => '//images.chinatravel.com', 'site_authors' => array('ll', 'D'), 'site_user' => ',ycc,vz,bhn,J,wj,ll,D,ZP,lyy,'), + 'ct' => array('site_code' => 'ct', 'site_id' => 1000, 'site_lgc' => '104', 'site_url' => 'https://www.chinatravel.com', 'site_image_url' => '//images.chinatravel.com', 'site_authors' => array('ll', 'D'), 'site_user' => ',ycc,vz,bhn,J,wj,ll,D,ZP,lyy,'), 'dct' => array('site_code' => 'dct', 'site_id' => 99, 'site_lgc' => '1', 'site_url' => 'http://www.diychinatours.com', 'site_image_url' => '//images.chinahighlights.com', 'site_authors' => array('zzy', 'spt', 'yl', 'gavin'), 'site_user' => ',ycc,lmr, zyh,J,shw,B,zzy,WJJ,Tony,pcf,zxy,wst,wz,S,yyg,yxd,wj,sw,yl,hx,spt,wmr,syt,gavin,zm,htc,yqw,zl,sw,J,qqs,MGZ,'), 'cits' => array('site_code' => 'cits', 'site_id' => 10086, 'site_lgc' => '2', 'site_image_url' => '', 'site_url' => 'www.guilincits.com'), 'mct' => array('site_code' => 'mct', 'site_id' => 6, 'site_lgc' => '101', 'site_image_url' => '', 'site_url' => 'https://www.mychinatours.com', 'site_authors' => array('cj')), diff --git a/application/controllers/keyworlds.php b/application/controllers/keyworlds.php index 429adf01..1c6706db 100644 --- a/application/controllers/keyworlds.php +++ b/application/controllers/keyworlds.php @@ -70,6 +70,7 @@ class Keyworlds extends CI_Controller { $data['wordcount'] = 2; } } + $data['rank_info'] = $this->Keywordsrank_model->get_rank_list($is_id_string, 30, $startdate, $enddate); empty($data['rank_info']) && $data['rank_info'] = $this->Keywordsrank_model->get_rank_list($is_id_string, 30); if (!empty($data['rank_info'])) { @@ -94,10 +95,15 @@ class Keyworlds extends CI_Controller { } } } +// print_r($data['wordcount']); +// print_r($rank_json); + // 拼接highcharts数据格式 $data['rank_json'] = '['; foreach ($rank_json as &$ra) { ksort($ra); + // 每条线 $data['rank_json'] .='{"name":"' . $ra[$data_time[0]]->kw_keyworlds . '","data":['; + // 每个点 foreach ($ra as $v) { $kwr_rank = $v->kwr_rank; if ($v->kwr_rank == '>150') @@ -110,8 +116,25 @@ class Keyworlds extends CI_Controller { } $data['rank_json'] = substr($data['rank_json'], 0, -1); $data['rank_json'] .=']},'; + // 叶子节点 显示mobile记录 + if ($data['wordcount'] == 1) { + $data['rank_json'] .='{"name":"' . $ra[$data_time[0]]->kw_keyworlds . '(mobile)","data":['; + foreach ($ra as $v) { + $kwr_mobile_rank = $v->kwr_mobile_rank ? $v->kwr_mobile_rank : 'null' ; + if ($v->kwr_mobile_rank == '>150') + $kwr_mobile_rank = 100; + if (strtolower($this->config->item('site_code')) == 'gm') { + $data['rank_json'] .=-$kwr_mobile_rank . ','; + } else { + $data['rank_json'] .=$kwr_mobile_rank . ','; + } + } + $data['rank_json'] = substr($data['rank_json'], 0, -1); + $data['rank_json'] .=']},'; + } } $data['rank_json'] = substr($data['rank_json'], 0, -1) . ']'; +// print_r($data['rank_json']); $data['data_time'] = json_encode($data_time); $data['rank_info'] = ''; isset($rank_json[$data['current_keyworld']->kw_id]) && $data['rank_info'] = $rank_json[$data['current_keyworld']->kw_id]; @@ -120,9 +143,10 @@ class Keyworlds extends CI_Controller { redirect(site_url("Keyworlds/index")); } - $data['analytics'] = $this->analytics_model->get_keyword_analytics($data['current_keyworld']->kw_keyworlds, 30); + // $data['analytics'] = $this->analytics_model->get_keyword_analytics($data['current_keyworld']->kw_keyworlds, 30); $data['site_code'] = strtolower($this->config->item('site_code')); - +// print_r($data['rank_info']); +// print_r($data["rank_json"]); $this->load->view('bootstrap/header', $data); $this->load->view('keyworlds/index'); $this->load->view('bootstrap/footer'); @@ -228,72 +252,108 @@ class Keyworlds extends CI_Controller { public function get_google_rank() { $keyworlds = $this->input->post('keyworlds'); //搜索关键字 - $kw_id = $this->input->post('kw_id'); - $site_url = $this->config->item('site_url'); - - //$engines = array('cht'=>'get_search_content_by_aol','gm' =>'get_search_content_by_google','vc' =>'get_search_content_by_google','jp' =>'get_search_content_by_yahoo','vac'=>'get_search_content_by_google','it' =>'get_search_content_by_google','ru' =>'get_search_content_by_google','wt' =>'get_search_content_by_baidu','tbt'=>'get_search_content_by_aol','sht'=>'get_search_content_by_aol','yz' =>'get_search_content_by_aol','gl' =>'get_search_content_by_aol','mbj'=>'get_search_content_by_aol','ct' =>'get_search_content_by_aol','mct'=>'get_search_content_by_aol','dct'=>'get_search_content_by_aol','cits' =>'get_search_content_by_baidu',); - //$engines = array('cht'=>'get_search_content_by_google','gm' =>'get_search_content_by_google','vc' =>'get_search_content_by_google','jp' =>'get_search_content_by_yahoo','vac'=>'get_search_content_by_google','it' =>'get_search_content_by_google','ru' =>'get_search_content_by_google','wt' =>'get_search_content_by_baidu','tbt'=>'get_search_content_by_google','sht'=>'get_search_content_by_google','yz' =>'get_search_content_by_google','gl' =>'get_search_content_by_google','mbj'=>'get_search_content_by_google','ct' =>'get_search_content_by_google','mct'=>'get_search_content_by_google','dct'=>'get_search_content_by_google','cits' =>'get_search_content_by_baidu'); - $engines = array('cht' => 'get_search_content_by_google', 'gm' => 'get_search_content_by_google', 'vc' => 'get_search_content_by_google', 'jp' => 'get_search_content_by_google', 'vac' => 'get_search_content_by_google', 'it' => 'get_search_content_by_google', 'ru' => 'get_search_content_by_google', 'wt' => 'get_search_content_by_baidu', 'tbt' => 'get_search_content_by_google', 'sht' => 'get_search_content_by_google', 'yz' => 'get_search_content_by_google', 'gl' => 'get_search_content_by_google', 'mbj' => 'get_search_content_by_google', 'ct' => 'get_search_content_by_google', 'mct' => 'get_search_content_by_google', 'dct' => 'get_search_content_by_google', 'cits' => 'get_search_content_by_baidu', 'ah' => 'get_search_content_by_google'); + $kw_id = $this->input->post('kw_id'); + $site_url = $this->config->item('site_url'); + + $engines = array( + 'cht' => 'get_search_content_by_google', + 'gm' => 'get_search_content_by_google', + 'vc' => 'get_search_content_by_google', + 'jp' => 'get_search_content_by_google', + 'vac' => 'get_search_content_by_google', + 'it' => 'get_search_content_by_google', + 'ru' => 'get_search_content_by_google', + 'tbt' => 'get_search_content_by_google', + 'sht' => 'get_search_content_by_google', + 'yz' => 'get_search_content_by_google', + 'gl' => 'get_search_content_by_google', + 'mbj' => 'get_search_content_by_google', + 'ct' => 'get_search_content_by_google', + 'mct' => 'get_search_content_by_google', + 'dct' => 'get_search_content_by_google', + 'ah' => 'get_search_content_by_google' + ); $site_code = $this->config->item('site_code'); $method = $engines[$site_code]; - if ($site_code == 'wt') - $site_url = 'www.iiiyooo.com'; - if ($site_code == 'cits') - $site_url = 'www.guilincits.c'; - - $last_rank = $this->Keywordsrank_model->get_rank_list($kw_id, $top = 1); - if (isset($last_rank[0]->kwr_datetime) and ( time() - $last_rank[0]->kwr_datetime) < 300) { + $today = strtotime(date('Y-m-d')); + $client_flag = 'PC'; + $rank_flag = 'rank'; + $source_flag = 'source'; + $last_rank = $this->Keywordsrank_model->get_rank_list($kw_id, $top = 1); + if (isset($last_rank[0]->kwr_datetime) and ( time() - $last_rank[0]->kwr_datetime) < 180) { $data[] = array('name' => 'rank', 'value' => '查询过于频繁,请等待三分钟!'); echo json_encode($data); return TRUE; + } else if (empty($last_rank[0]->kwr_mobile_rank) && + intval($last_rank[0]->kwr_datetime) > intval($today)) { + $client_flag = 'm'; + $rank_flag = 'rank_m'; + $source_flag = 'source_m'; } //获取排名详细情况,排名超过150的停止搜索 for ($i = 1; $i <= 15; $i++) { $j = $i; - $rank = $this->$method($keyworlds, $site_url, $j, $site_code); - if ($rank['rank'] != 0) { - if ($rank['rank'] > 150) - $rank['rank'] = '151'; + $rank = $this->$method($client_flag, $keyworlds, $site_url, $j, $site_code); + // 仅更新一个字段 + if (intval($rank['rank']) == 0) { + $rank['rank'] = $last_rank[0]->kwr_rank; + $rank['source'] = $last_rank[0]->kwr_source; + } else { + $rank['rank_m'] = null; + $rank['source_m'] = null; + } + if ($rank[$rank_flag] != 0) { + if ($rank[$rank_flag] > 150) + $rank[$rank_flag] = '151'; break; }elseif ($i == 15) { - $rank['rank'] = '151'; + $rank[$rank_flag] = '151'; break; - } elseif ($rank['rank'] == -2) { + } elseif ($rank[$rank_flag] == -2) { break; } } //保存排名数据 - if ($rank['rank'] == '151') { //超过151的排名则不记录 + if ($rank[$rank_flag] == '151') { //超过151的排名则不记录 $this->Keywords_model->update_time($kw_id); } elseif (isset($last_rank[0]->kwr_datetime) and $last_rank[0]->kwr_datetime > strtotime(date('Y-m-d'))) { - if ($rank['rank'] != -1 and $rank['rank'] != -2 and $this->Keywordsrank_model->update_rank($last_rank[0]->kwr_id, $rank['rank'], $rank['source'])) { + if ($rank[$rank_flag] != -1 and $rank[$rank_flag] != -2 and $this->Keywordsrank_model->update_rank($last_rank[0]->kwr_id, $rank['rank'], $rank['rank_m'], $rank['source'], $rank['source_m'])) { $this->Keywords_model->update_time($kw_id); } } else { - if ($rank['rank'] != -1 and $rank['rank'] != -2 and $this->Keywordsrank_model->add_rank($kw_id, $rank['rank'], $rank['source'], $rank['engines'])) { + if ($rank[$rank_flag] != -1 and $rank[$rank_flag] != -2 and $this->Keywordsrank_model->add_rank($kw_id, $rank['rank'], $rank['rank_m'], $rank['source'], $rank['source_m'], $rank['engines'])) { $this->Keywords_model->update_time($kw_id); } } - $data[] = array('name' => 'rank', 'value' => $rank['rank']); + $data[] = array('name' => 'rank', 'value' => ($rank['rank'] . " -- " . $rank["rank_m"])); echo json_encode($data); return TRUE; } //自动爬取排名 public function get_auto_rank($engines = '', $fix_site_code = '') { + set_time_limit(60); $rank = array(); $site_config = $this->config->item('site'); $engines = trim($engines); //取出需要更新排名的关键词 $worldsList = $this->Keywords_model->get_keyworld_list(1, $engines, $fix_site_code); - //print_r($worldsList);die(); //如果没有需要更新的则返回 if (empty($worldsList)) { echo 'all done'; return; } + $today = strtotime(date('Y-m-d')); + $client_flag = "PC"; + $rank_flag = 'rank'; + $source_flag = 'source'; + if (intval($worldsList[0]->kwr_datetime) >= intval($today) ) { + $client_flag = "m"; + $rank_flag = 'rank_m'; + $source_flag = 'source_m'; + } $last_rank = $this->Keywordsrank_model->get_rank_list($worldsList[0]->kw_id); //获取排名并保存 @@ -304,26 +364,30 @@ class Keyworlds extends CI_Controller { for ($i = 1; $i <= 15; $i++) { if ($engines == '' || $engines == 'en' || $engines == 'eu') {//没有输入搜索引擎的时候根据站点自动分配获取排名的搜索引擎 - $rank = $this->get_search_content_by_google($v->kw_keyworlds, $site_url, $i, $site_code); + $rank = $this->get_search_content_by_google($client_flag,$v->kw_keyworlds, $site_url, $i, $site_code); } else if ($engines == 'yandex') {//俄语站的yangdex - $rank = $this->get_search_content_by_yandex($v->kw_keyworlds, $site_url, $i - 1); - } elseif ($engines == 'yahoo') { - $rank = $this->get_search_content_by_yahoo($v->kw_keyworlds, $site_url, $i, $site_code); + $rank = $this->get_search_content_by_yandex($client_flag,$v->kw_keyworlds, $site_url, $i - 1); } - - if ($rank['rank'] != 0) { - if ($rank['rank'] > 150) - $rank['rank'] = '151'; + if (intval($rank['rank']) == 0) { + $rank['rank'] = $last_rank[0]->kwr_rank; + $rank['source'] = $last_rank[0]->kwr_source; + } else { + $rank['rank_m'] = null; + $rank['source_m'] = null; + } + if ($rank[$rank_flag] != 0) { + if ($rank[$rank_flag] > 150) + $rank[$rank_flag] = '151'; break; }elseif ($i == 15) { - $rank['rank'] = '151'; - } elseif ($rank['rank'] == -2) { + $rank[$rank_flag] = '151'; + } elseif ($rank[$rank_flag] == -2) { break; } } - if ($rank['rank'] == '151') { //超过151的排名则不记录 + if ($rank[$rank_flag] == '151') { //超过151的排名则不记录 $this->Keywords_model->update_time($v->kw_id); - }else if ($rank['rank'] != -1 and $rank['rank'] != -2 and $this->Keywordsrank_model->add_rank($v->kw_id, $rank['rank'], $rank['source'], $rank['engines'])) { + }else if ($rank[$rank_flag] != -1 and $rank[$rank_flag] != -2 and $this->Keywordsrank_model->add_rank($v->kw_id, $rank['rank'], $rank['rank_m'], $rank['source'], $rank['source_m'], $rank['engines'])) { $this->load->model('InfoSMS_model'); $last_rank = isset($last_rank[0]) ? $last_rank[0]->kwr_rank : $rank['rank']; $this->InfoSMS_model->readed_for_info($v->kw_id, 'keywords_rank'); @@ -336,34 +400,31 @@ class Keyworlds extends CI_Controller { } //计算关键词在google搜索引擎的排名 - public function get_search_content_by_google($keyworlds, $site_url, $page, $site_code) { + public function get_search_content_by_google($client_flag,$keyworlds, $site_url, $page, $site_code) { + $site_url .= "/"; $rank['rank'] = 0; $rank['source'] = $site_url; + $rank['rank_m'] = 0; + $rank['source_m'] = $site_url; $rank['engines'] = 'google'; if ($page > 3) { $rank['rank'] = 151; + $rank['rank_m'] = 151; return $rank; } - //拼接关键词 - /* $key_array = explode(' ',$keyworlds); - $search_worlds=''; - foreach ($key_array as $v) { - $search_worlds.='+'.$v; - } - $search_worlds = substr($search_worlds,1); */ $search_worlds = urlencode($keyworlds); //拼接搜索url链接 $start = ($page - 1) * 50; $google_url = 'google.com'; $google_domain = array( - 'gm' => 'google.de', - 'vc' => 'google.fr', + 'gm' => 'google.de', + 'vc' => 'google.fr', 'vac' => 'google.es', - 'ru' => 'google.ru', - 'it' => 'google.it', - 'jp' => 'google.co.jp' + 'ru' => 'google.ru', + 'it' => 'google.it', + 'jp' => 'google.co.jp' ); if (!empty($google_domain[$site_code])) $google_url = $google_domain[$site_code]; @@ -374,292 +435,103 @@ class Keyworlds extends CI_Controller { $language = $language_array[$site_code]; //抓取google搜索结果 - $this->load->library('Snoopy'); - $snoopy = $this->snoopy; - $snoopy->maxredirs = 0; - $snoopy->agent = '(compatible; MSIE 11; MSN 8; AOL 4.0; Windows 98)'; //模拟浏览器 - if ($snoopy->fetch("http://www.$google_url/search?q=$search_worlds&start=$start&num=50&hl=$language")) { - $response = $snoopy->results; + $url = "https://www.$google_url/search?q=$search_worlds&start=$start&num=50&hl=$language"; + $match_fun = '/
授权登录中,请稍候...
+