利用寶塔計劃任務(wù)實現(xiàn)主動自動推送網(wǎng)站地圖(sitemap)到百度站長(寶塔計劃任務(wù)提取網(wǎng)站地圖(sitemap)鏈接實現(xiàn)自動推送)

[重要通告]如您遇疑難雜癥,本站支持知識付費業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時間哦!

最近百度收錄以及索引量有時候增加,有時間減少,很不穩(wěn)定,就想著如何把相關(guān)的更新記錄推送給百度一下,有了想法就要開始操作;

這個操作可以實現(xiàn)站點為wordpress以及PbootCMS或者其他站點均可;

一、 新建一個 PHP 文件,復(fù)制下面代碼,將這個PHP文件命名為,Baidu_Push.php
二、 填寫網(wǎng)站 sitemap.xml 地址和百度的推送接口(http://data.zz.baidu.com/urls?site=你的&token=你的),沒token的 百度站長資源站去獲?。╤ttps://ziyuan.baidu.com)。
三、?把文件地址添加到寶塔定時任務(wù),選擇訪問 URL,自定義執(zhí)行時間后,保存即可。

PS:其實在下面的代碼中有三種寫法,大致都是一樣的,看自己喜好,我比較喜歡第一種:

第一種代碼寫法:

<?php
header('Content-Type:text/html;charset=utf-8');

/** 只需修改這里面的兩個鏈接 **/
$xml_url = "http://m.madamerex.com/baidu_sitemap.xml"; // 這里修改你站點的xml地圖鏈接
$baidu_api = 'http://data.zz.baidu.com/urls?site=http://m.madamerex.com&token=2589053300';// 這里修改為你在百度站長獲取到的推送接口
/***只需修改這里面的兩個鏈接**/

$xmldata =file_get_contents($xml_url);
$xmlstring = simplexml_load_string($xmldata,'SimpleXMLElement',LIBXML_NOCDATA);
$value_array = json_decode(json_encode($xmlstring),true);
$url = [];
for ($i =0;$i < count($value_array['url']);$i++){
// echo $value_array['url'][$i]['loc']."<br/>";
$url[]= $value_array['url'][$i]['loc'];
}
//百度推送接口一次只支持推送2000條數(shù)據(jù),所以超過2000條的話需要分組推送
$url_group = array_chunk($url,2000);
$count=count($url_group);
for($i=0;$i<$count;$i++){
$ch = curl_init();
$options = array(
CURLOPT_URL => $baidu_api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n",$url_group[$i]),
CURLOPT_HTTPHEADER => array('Content-Type:text/plain'),
);
curl_setopt_array($ch, $options);
$result =curl_exec($ch);
curl_close($ch);
echo $result;
}
?>

第二種代碼寫法:

<?php 
$token='http://data.zz.baidu.com/urls?site=m.madamerex.com&token=xxxxx';//去百度獲取
$xml_string = file_get_contents("http://m.madamerex.com/sitemap.xml");//網(wǎng)站xml地圖
$xml_string = trim($xml_string);
$xml_object = simplexml_load_string($xml_string);
$array=[];
$i=0;
foreach ($xml_object->url as $key=>$value){
//默認一次提交100,適合用于泛目錄的xml地圖(因為刷新一次就隨機變),普通的網(wǎng)站的會出現(xiàn)重復(fù)提交,慎用,非要用就把$i數(shù)值改成2000 百度不允許超過2000
if($i===100){
break;
}
$array['aa']= get_object_vars($value);
$url.=$array['aa']['loc']."\n";
$i++;
}
$urls=explode("\n",$url);
$ch = curl_init();
$options = array(
CURLOPT_URL => $token,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", $urls),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo $result;
?>

第三種代碼寫法:

<?php
header('Content-Type:text/html;charset=utf-8');
$xmldata =file_get_contents("你的sitemap.xml鏈接");
$xmlstring = simplexml_load_string($xmldata,'SimpleXMLElement',LIBXML_NOCDATA);
$value_array = json_decode(json_encode($xmlstring),true);
$url = [];
for ($i =0;$i < count($value_array['url']);$i++){
echo $value_array['url'][$i]['loc']."<br/>";
$url[]= $value_array['url'][$i]['loc'];
}
$api ='你的推送接口';
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n",$url),
CURLOPT_HTTPHEADER => array('Content-Type:text/plain'),
);
curl_setopt_array($ch, $options);
$result =curl_exec($ch);
echo $result;
?>

多站點版-注意:需要修改的區(qū)域都已經(jīng)添加了注釋,多個站點只需參考示例的兩個數(shù)組進行增加,然后保存即可。

<?php
header('Content-Type:text/html;charset=utf-8');
// ini_set('max_execution_time',600);//腳本超時,秒為單位,自己根據(jù)需要定義

/** 多個站點只需在這里面新增數(shù)組 **/
$data = array(
array(
'url' => 'http://m.madamerex.com/sitemap.xml',// 這里修改你站點的xml地圖鏈接
'api' => 'http://data.zz.baidu.com/urls?site=http://m.madamerex.com&token=111111111'// 這里修改為你在百度站長獲取到的推送接口
),
array(
'url' => 'http://m.madamerex.com/sitemap2.xml',// 這里修改你站點的xml地圖鏈接
'api' => 'http://data.zz.baidu.com/urls?site=http://m.madamerex.com&token=222222222'// 這里修改為你在百度站長獲取到的推送接口
),
);
/** 多個站點只需在這里面新增數(shù)組 **/

foreach($data as $value){
echo '================================<br/>';
echo $value['url'].'<br/>';
post_Baidu($value['url'],$value['api']);
}

function post_Baidu($xml_url, $baidu_api) {
$xmldata =file_get_contents($xml_url);
$xmlstring = simplexml_load_string($xmldata,'SimpleXMLElement',LIBXML_NOCDATA);
$value_array = json_decode(json_encode($xmlstring),true);
$url = [];
for ($i =0;$i < count($value_array['url']);$i++){
// echo $value_array['url'][$i]['loc']."<br/>";
$url[]= $value_array['url'][$i]['loc'];
}
//百度推送接口一次只支持推送2000條數(shù)據(jù),所以超過2000條的話需要分組推送
$url_group = array_chunk($url,2000);
$count=count($url_group);
for($i=0;$i<$count;$i++){
$ch = curl_init();
$options = array(
CURLOPT_URL => $baidu_api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n",$url_group[$i]),
CURLOPT_HTTPHEADER => array('Content-Type:text/plain'),
);
curl_setopt_array($ch, $options);
$result =curl_exec($ch);
curl_close($ch);
echo $result.'<br/>';
}
}
?>

不管上面幾種寫法,但需要推送給百度;推送百度也有兩種方式:

第一種:寶塔計劃任務(wù)--添加計劃任務(wù)---訪問URL

最主要的就是url地址,別寫錯了即可,如下圖我的所示;

第二種:寶塔新建計劃任務(wù)---任務(wù)類型----shell腳本

腳本內(nèi)容:php /www/你的網(wǎng)站目錄/Baidu_Push.php

比如老梁的“php /www/m.madamerex.com/Baidu_Push.php”

搞好以后,直接點一下執(zhí)行,測試一下,成功的如下:

{"remain": 今日剩余數(shù),"success": 推送成功數(shù)}

問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信

所寫所說,是心之所感,思之所悟,行之所得;文當(dāng)無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!

支付寶贊助
微信贊助

免責(zé)聲明,若由于商用引起版權(quán)糾紛,一切責(zé)任均由使用者承擔(dān)。

您必須遵守我們的協(xié)議,如您下載該資源,行為將被視為對《免責(zé)聲明》全部內(nèi)容的認可->聯(lián)系老梁投訴資源
LaoLiang.Net部分資源來自互聯(lián)網(wǎng)收集,僅供用于學(xué)習(xí)和交流,請勿用于商業(yè)用途。如有侵權(quán)、不妥之處,請聯(lián)系站長并出示版權(quán)證明以便刪除。 敬請諒解! 侵權(quán)刪帖/違法舉報/投稿等事物聯(lián)系郵箱:service@laoliang.net
意在交流學(xué)習(xí),歡迎贊賞評論,如有謬誤,請聯(lián)系指正;轉(zhuǎn)載請注明出處: » 利用寶塔計劃任務(wù)實現(xiàn)主動自動推送網(wǎng)站地圖(sitemap)到百度站長(寶塔計劃任務(wù)提取網(wǎng)站地圖(sitemap)鏈接實現(xiàn)自動推送)

發(fā)表回復(fù)

本站承接,網(wǎng)站推廣(SEM,SEO);軟件安裝與調(diào)試;服務(wù)器或網(wǎng)絡(luò)推薦及配置;APP開發(fā)與維護;網(wǎng)站開發(fā)修改及維護; 各財務(wù)軟件安裝調(diào)試及注冊服務(wù)(金蝶,用友,管家婆,速達,星宇等);同時也有客戶管理系統(tǒng),人力資源,超市POS,醫(yī)藥管理等;

立即查看 了解詳情