作者 赵彬吉

update

... ... @@ -54,13 +54,16 @@ class QuanqiusouApi
* @author zbj
* @date 2023/5/11
*/
public function getSiteResPer($api_no){
public function getSiteResPer($api_no, $is_ext = 0, $copy_domain = ''){
// $key = 'quanqiusou_api_site_res_per_' . $api_no . '_' . date('Y-m-d');
// $res = Cache::get($key);
// if (!$res) {
$api_url = $this->url . '/google-rank/echo_site_res_per.php';
try {
$res = HttpUtils::get($api_url, ['apino' => $api_no]);
$param = ['apino' => $api_no];
$is_ext && $param['is_ext'] = $is_ext;
$copy_domain && $param['domain'] = $copy_domain;
$res = HttpUtils::get($api_url, $param);
if($res){
$res = Arr::s2a($res);
// Cache::put($key, $res, 2 * 3600);
... ... @@ -73,6 +76,26 @@ class QuanqiusouApi
return $res;
}
/**
* 复制站点
* @return array|false|mixed
* @author zbj
* @date 2023/5/11
*/
public function getSiteNumList(){
$api_url = $this->url . '/google-rank/ext_sitenum_list.php';
try {
$res = HttpUtils::get($api_url, []);
if($res){
$res = Arr::s2a($res);
}
} catch (\Exception | GuzzleException $e) {
errorLog('获取复制站点收录页面数', [], $e);
return [];
}
return array_column($res, 'url');
}
/**
* 获取谷歌排名数据
... ...
... ... @@ -28,6 +28,7 @@ use App\Models\RankData\Speed;
use App\Models\RankData\Speed as GoogleSpeedModel;
use App\Utils\HttpUtils;
use GuzzleHttp\Exception\GuzzleException;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Log;
... ... @@ -819,8 +820,19 @@ class RankDataLogic extends BaseLogic
if(!$model){
$model = new IndexedPagesModel();
}
$is_ext = 0;
$copy_domain = '';
$api = new QuanqiusouApi();
$res = $api->getSiteResPer($api_no);
//复制站 域名在这个http://api.quanqiusou.cn/google-rank/ext_sitenum_list.php里面 就用这个接口的数据
$domain = (new DomainInfo())->getDomain($domain);
$host = parse_url($domain, PHP_URL_HOST);
$host=str_replace('www.', '', $host);
$copy_site_list = $api->getSiteNumList();
if(in_array($host, $copy_site_list)){
$copy_domain = $host;
$is_ext = 1;
}
$res = $api->getSiteResPer($api_no, $is_ext, $copy_domain);
if(!$res){
Log::channel('rank_data')->error('syncIndexedPages:收录数数据为空', ['project_id' => $project_id, 'api_no' => $api_no]);
continue;
... ...