作者 赵彬吉

update

@@ -7,6 +7,7 @@ use App\Helper\SemrushApi; @@ -7,6 +7,7 @@ use App\Helper\SemrushApi;
7 use App\Models\Domain\DomainInfo; 7 use App\Models\Domain\DomainInfo;
8 use App\Models\RankData\ExternalLinks as ExternalLinksModel; 8 use App\Models\RankData\ExternalLinks as ExternalLinksModel;
9 use App\Models\Project\DeployOptimize; 9 use App\Models\Project\DeployOptimize;
  10 +use App\Utils\HttpUtils;
10 use App\Utils\LogUtils; 11 use App\Utils\LogUtils;
11 12
12 /** 13 /**
@@ -40,9 +41,12 @@ class ExternalLinks extends BaseCommands @@ -40,9 +41,12 @@ class ExternalLinks extends BaseCommands
40 $error = 0; 41 $error = 0;
41 $semrushApi = new SemrushApi(); 42 $semrushApi = new SemrushApi();
42 //有排名api编号的项目 43 //有排名api编号的项目
43 - $list = DeployOptimize::where('api_no', '>', 0)->pluck('domain', 'project_id')->toArray(); 44 + $list = DeployOptimize::where('api_no', '>', 0)->select('domain', 'api_no', 'project_id')->get()->toArray();
44 LogUtils::info('start rank_data_external_links:' . count($list)); 45 LogUtils::info('start rank_data_external_links:' . count($list));
45 - foreach ($list as $project_id => $domain) { 46 + foreach ($list as $item) {
  47 + $project_id = $item['project_id'];
  48 + $api_no = $item['api_no'];
  49 + $domain = $item['domain'];
46 if(!$domain){ 50 if(!$domain){
47 continue; 51 continue;
48 } 52 }
@@ -54,15 +58,26 @@ class ExternalLinks extends BaseCommands @@ -54,15 +58,26 @@ class ExternalLinks extends BaseCommands
54 $model = new ExternalLinksModel(); 58 $model = new ExternalLinksModel();
55 } 59 }
56 60
57 - //外链数据  
58 - $domain = (new DomainInfo())->getDomain($domain);  
59 - $res = $semrushApi->backlinks_overview($domain);  
60 - if (!$res) {  
61 - $error++;  
62 - continue; 61 +
  62 + //5.0
  63 + try {
  64 + $data = HttpUtils::get("https://www.quanqiusou.cn/semrush-api/data_json/{$api_no}.json", []);
  65 + $data = Arr::s2a($data);
  66 + }catch (\Exception $e){
  67 + $data = [];
63 } 68 }
64 69
65 - $data = $this->_data($project_id, $res['total']); 70 + if(!$data){
  71 + //外链数据
  72 + $domain = (new DomainInfo())->getDomain($domain);
  73 + $res = $semrushApi->backlinks_overview($domain);
  74 + if (!$res) {
  75 + $error++;
  76 + continue;
  77 + }
  78 +
  79 + $data = $this->_data($project_id, $res['total']);
  80 + }
66 81
67 $model->project_id = $project_id; 82 $model->project_id = $project_id;
68 $model->total = $data['total']; 83 $model->total = $data['total'];
@@ -2,10 +2,12 @@ @@ -2,10 +2,12 @@
2 2
3 namespace App\Console\Commands\RankData; 3 namespace App\Console\Commands\RankData;
4 4
  5 +use App\Helper\Arr;
5 use App\Helper\SemrushApi; 6 use App\Helper\SemrushApi;
6 use App\Models\Domain\DomainInfo; 7 use App\Models\Domain\DomainInfo;
7 use App\Models\RankData\RecommDomain as RecommDomainModel; 8 use App\Models\RankData\RecommDomain as RecommDomainModel;
8 use App\Models\Project\DeployOptimize; 9 use App\Models\Project\DeployOptimize;
  10 +use App\Utils\HttpUtils;
9 use App\Utils\LogUtils; 11 use App\Utils\LogUtils;
10 12
11 /** 13 /**
@@ -39,9 +41,12 @@ class RecommDomain extends BaseCommands @@ -39,9 +41,12 @@ class RecommDomain extends BaseCommands
39 $error = 0; 41 $error = 0;
40 $semrushApi = new SemrushApi(); 42 $semrushApi = new SemrushApi();
41 //有排名api编号的项目 43 //有排名api编号的项目
42 - $list = DeployOptimize::where('api_no', '>', 0)->pluck('domain', 'project_id')->toArray(); 44 + $list = DeployOptimize::where('api_no', '>', 0)->select('domain', 'api_no', 'project_id')->get()->toArray();
43 LogUtils::info('start rank_data_recomm_domain:' . count($list)); 45 LogUtils::info('start rank_data_recomm_domain:' . count($list));
44 - foreach ($list as $project_id => $domain) { 46 + foreach ($list as $item) {
  47 + $project_id = $item['project_id'];
  48 + $api_no = $item['api_no'];
  49 + $domain = $item['domain'];
45 if(!$domain){ 50 if(!$domain){
46 continue; 51 continue;
47 } 52 }
@@ -53,9 +58,20 @@ class RecommDomain extends BaseCommands @@ -53,9 +58,20 @@ class RecommDomain extends BaseCommands
53 $model = new RecommDomainModel(); 58 $model = new RecommDomainModel();
54 } 59 }
55 60
56 - //外链引荐域名  
57 - $domain = (new DomainInfo())->getDomain($domain);  
58 - $data = $semrushApi->backlinks_refdomains($domain); 61 + //5.0
  62 + try {
  63 + $data = HttpUtils::get("https://www.quanqiusou.cn/semrush-api/data_json/{$api_no}.json", []);
  64 + $data = Arr::s2a($data)['list'];
  65 + }catch (\Exception $e){
  66 + $data = [];
  67 + }
  68 +
  69 + if(!$data){
  70 + //外链引荐域名
  71 + $domain = (new DomainInfo())->getDomain($domain);
  72 + $data = $semrushApi->backlinks_refdomains($domain);
  73 + }
  74 +
59 if (!$data) { 75 if (!$data) {
60 $error++; 76 $error++;
61 continue; 77 continue;