使用静态框架制作网站(Hexo,docusaurus)时候发现百度收录通过手动提交比较慢,主动推送支持框架的比较少,查询后使用phpphp自动推送网址到百度和利用宝塔面板计划任务来实现
一、前期准备
首先你的服务器环境安装了宝塔(没有也可以),或者说支持PHP环境
新建一个php文件,如:baidutoken.php
粘贴diam
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| <?php header('Content-Type:text/html;charset=utf-8');
$data = array( array( 'url' => 'https://www.xxx.com/sitemap.xml', 'api' => 'http://data.zz.baidu.com/urls?site=https://www.xxx.com&token=111111111' ), array( 'url' => 'https://www.xxx.com/sitemap2.xml', 'api' => 'http://data.zz.baidu.com/urls?site=https://www.xxx.com&token=222222222' ), );
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++){ $url[]= $value_array['url'][$i]['loc']; } $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/>'; } } ?>
|
二、执行
通过宝塔设置每个一段时间自动推送,选择访问URL,URL地址:www.xxx.com/baidutoken.php
如果没有宝塔的;可以手动执行,如浏览器打开:www.xxx.com/baidutoken.php
补充
百度站长的普通收录有一个问题;在站长添加的地址是https://www.xxx.com
,那么你的sitemap.xml网站地图生成的地址也是https://www.xxx.com
,如果是http,或者http://xxx.com
模式就会有问题