百度早前就已经推出了主动推送,而更早前的sitemap推送已经OUT了,不过百度官方并没有推出主动推送的插件,只是给了一段推送代码,需要手动提交链接推送,之前一直不是太关注这块,觉得只要坚持原创内容就可以了。最近博客文章被盗用严重,因此我觉得有必要将这个做好。今天就分享下我的网站建设技术合作伙伴 Carl 刚写好的百度实时主动推送代码,在百度原有代码基础下新增了已提交链接不再提交,不需要自己手动每条每条的去加,对于文章量大的网站来说,这是不错的福利,本站已经测试正常。
我们先来看下百度站长工具平台给出的代码
开始前,我们需要准备以下内容
1、登陆到百度站长工具平台 http://zhanzhang.baidu.com/ 没有注册的需要先注册,并验证网站权限。
2、选择左侧网页抓取-→链接提交
3、自动提交 - 主动推送(实时),在这里拿到调用接口,接口内有你的网站域名以及密匙。接口调用地址: http://data.zz.baidu.com/urls?site=网站域名&token=密匙
OK,上面都准备好了后开始制作php文件,首先新建一个php文件与txt文件,自己命名一下。然后打开php文件,将以下代码复制进去并保存。
<?php
$urlIdo = file_get_contents("XXXX.txt");//读取txt内容
$urlIdoArr = explode('|',$urlIdo);//去掉|符号
$urlIdoArr = myfunction($urlIdoArr);//去掉空元素
$urlIds = GetBaiDuAutoList(); //读取数据库全部文章id
$newUrls =array(); //待提交的地址
foreach($urlIds as $id){//过滤已经提交的地址,并且组合未提交地址
if(in_array($id,$urlIdoArr)){
continue;
}
array_push($newUrls,'http://www.xyfeng.com/thread-'.$id.'-1-1.html');
file_put_contents("XXXX.txt", $id.'|', FILE_APPEND);
}
if(empty($newUrls)){//如果没有新地址,就不提交给百度
echo "no";//无更新
exit;//不执行以下代码
}
$urls = $newUrls;
$api = 'http://data.zz.baidu.com/urls?site=www.xyfeng.com&token=接口密匙';
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
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;
function myfunction($urlArr) {
$arr = array();
foreach ($urlArr as $val) {
if (empty($val)) {
continue;
}
$arr[] = $val;
}
return $arr;
}
function GetBaiDuAutoList()
{
$link=mysql_connect("localhost","你的数据库账号","你的数据库密码");
mysql_select_db("数据库名", $link);
$q = "SELECT * FROM `这里填写你的文章数据表` where displayorder='0'";
mysql_query("SET NAMES UTF8");
$rs = mysql_query($q, $link);
if(!$rs){die("Valid result!");}
$res=array();
while($row = mysql_fetch_row($rs))
{
array_push($res,$row[0]);
}
mysql_free_result($rs);
return $res;
}
?>
复制以上代码
需要注意:
$urlIdo = file_get_contents("XXXX.txt"); 此处括号内将内容换成你前面新建的txt文件名,记得前后是有“”小写的双引号的。
array_push($newUrls,'http://www.xyfeng.com/thread-'.$id.'-1-1.html'); 此处链接换成你网站的链接形式,将你网站链接内ID部分替换为 '.$id.' 即可,注意需要前后的引号不能删掉。
$api = 'http://data.zz.baidu.com/urls?site=www.xyfeng.com&token=XXXX '; 此处将链接更换为你的百度实时推送接口链接。
$link=mysql_connect("localhost","你的数据库账号","你的数据库密码"); 此处括号内中文换成你的数据库账号以及密码,注意需要前后的引号不能删掉。
mysql_select_db("数据库名", $link); 此处括号内中文换成你的数据库名,注意需要前后的引号不能删掉。
$q = "SELECT * FROM `这里填写你的文章数据表` where displayorder='0'"; 此处括号内中文换成你的文章数据表名,注意需要前后的引号不能删掉。
完成后保存php文件与txt文件至你的网站根目录,然后访问php文件就可以看到返回的代码,比如: "remain":498,"success":2, 意思是你今天还有498条链接推送权限,已经推送两条。这是百度实时推送成功的返回代码。
推送成功后,php文件会自动将这次主动推送的文章id记录到我们先前新建的txt文档,当你网站有新的文章的时候,只需要再访问一次php文件就可以,因为txt文件内已经记录了之前推送的文章id,所以以后访问都只推送网站新文章链接。如果没有新文章,那么访问php文件返回的是no。
↓↓傻瓜包下载请拉到本文最下方,点击阅读原文,用电脑访问下载。
下载后替换bdzdtjurl.php文件内百度实时主动推送接口链接,数据库账号,数据库密码,数据库名,文章表单名,保存上传至网站根目录即可。上传后可以先访问http://网站域名/bdzdtjurl.php 看下效果,一般第二天就可以在百度站长工具平台看到前一天的推送链接数量。如果有问题可以在本文下面留言,我看到会及时回复。
感谢程序猿 Carl 的技术支持,以后会有更多的网站技术方面文章更新,请实时关注本微信订阅号。
----------------------------------------------------
长按二维码,打赏一杯咖啡钱:
部分文章将会更新至博客:www.xyfeng.com
感谢关注,如果本文对你有帮助就点击右上角分享一下
微信搜索:xyfeng168
如果你有SEO、网络推广、网络营销等方面的问题可以给我留言,每条回复必看