统计
  • 建站日期:2022-01-17
  • 文章总数:5289 篇
  • 评论总数:94941条
  • 分类总数:43 个
  • 最后更新:今天

宝塔监控:必应API定时进行站点地图提交php方法

作者头像
首页 云服务器 正文
广告
广告
广告
广告

主动的向搜索引擎提交站点地图是站长必要的SEO手段,有利于搜索引擎的抓取,从而使更多的站点收录成为可能。前不久发现Bing也可以通过api提交,于是找到了可以推送的php代码,然后通过服务器宝塔的预定任务每隔几天自动推送一次。

实现步骤
进入必应网站管理员工具Webmaster Tools,api访问,找到并复制

image.png

需要的php推送代码
修改推送代码中的域名信息、sitemap.xml地址信息、必应提交key

<?php
$arr = array(
    'https://www.aybk.cn' => array(
        'url'  => array(
            "https://www.aybk.cn/sitemap.xml"
            ),
        'bing_key' => "必应搜索引擎提交中心复制的api"
    ),
);

foreach ($arr as $i => $j) {
    //网站地址
    $website = $i;
    //站点地图
    $url = $j['url'];
    //必应key
    $bing_key = $j['bing_key'];

    //配额接口调用地址
    $quota_api = "https://ssl.bing.com/webmaster/api.svc/json/GetUrlSubmissionQuota?siteUrl=$website&apikey=$bing_key";

    //URL提交API接口调用地址
    $seturl_api = "https://ssl.bing.com/webmaster/api.svc/json/SubmitUrlBatch?apikey=$bing_key";

    $s = file_get_contents($quota_api);
    $s = json_decode($s, true);

    echo "$website 必应今日剩余配额:".$s['d']['DailyQuota']."  本月剩余配额:".$s['d']['MonthlyQuota'];echo '<br>';

    if($s['d']['DailyQuota']){
        $ch = curl_init();

        //防https错误
        $xmlresponse = curl_exec($ch);
        $xml=simplexml_load_string($xmlresponse);

        $urls = array();
        foreach ($url as $key => $value) {
            curl_setopt($ch, CURLOPT_URL, $value);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            $xmlresponse = curl_exec($ch);
            $xml=simplexml_load_string($xmlresponse);

            foreach ($xml as $key => $value) {
                $urls[] = $value->loc;
            }

        }
        shuffle($urls);
        //必应api提交每次上限100条
        if ($s['d']['DailyQuota']>=100) {
            $max = 100;
        } else {
            $max = $s['d']['DailyQuota'];
        }
        $urls = array_slice($urls, 0,$s['d']['DailyQuota']);
        if(!$urls){
            echo $website.' 今日配额已全部提交!';continue;
        }
        $url_data = array_chunk($urls, $max, true);

        foreach ($url_data as $key => $value) {
            $url_str = implode(',',$value);
            $url_arr = explode(',',$url_str);
            $data = array(
                "siteUrl"=>$website,
                "urlList"=>$url_arr
                );
            $ch = curl_init();
            $options =  array(
                CURLOPT_URL => $seturl_api,
                CURLOPT_POST => true,
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_POSTFIELDS => json_encode($data),
                CURLOPT_HTTPHEADER => array('Content-Type: application/json'),
            );
            curl_setopt_array($ch, $options);
            $result = curl_exec($ch);
            echo "$website 必应提交信息:".$result;echo '<br>';
        }
    }
//阿影博客 www.aybk.cn
}
?>

最后设置宝塔或者监控,在宝塔中设置定时任务,任务类型是访问URL,例如:域名/bing.php;必应默认最多提交100个url/天。如果需要更多的份额,需要额外申请。

版权说明
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。
版权声明:本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系客服并出示版权证明以便删除!
windows server2008 开启端口的实现方法
« 上一篇 11-10
PC微软电脑管家v3.8公测版
下一篇 » 11-10

发表评论

  • 泡泡
  • 阿呆
  • 阿鲁
  • 蛆音娘
    没有更多评论了