利用百度主动推送功能,实现每天固定时间更新百度最新收录页面

/ 3评 / 0

[reply]
上一篇文章里面我们已经说到过百度自动推送更新的功能了,一篇我们来说说百度主动推送链接的功能和实现

功能和好处略过.....为什么呢?你不懂SEO那干嘛看这篇文章呢?对吧~~~~至于功能嘛.一般上官方看传送门!

准备工作:

1.网站服务器环境 (Ubuntu+lnmp+帝国CMS)这里是Sandy的服务器环境.没特别要求要一样

2.百度站长账号,注册传送门

3.有一定SEO和服务器操作知识

开始工作:

一 建立标签模版:

[!--empirenews.listtemp--]<!--list.var1-->[!--empirenews.listtemp--]
[!--titleurl--],

 

注意列表内容模板中的“,”号,官方文章中有着重说明。

注意新增加后的标签模板的ID数字,后面会用到。

二 自定义页面制作内容网址列表(TXT文本格式)

[ecmsinfo]'news',50,36,0,18,14,1[/ecmsinfo]

 

如上图'14'就是说明你刚才建立的模板ID

注1:生成的文件名后缀为txt:(文件名自己定,如baidu.txt),存放于网站根目录下;

注2:需要提交的更新网址条数(50)建议不要太多,可以自行修改,自定义标签ID(14)要更换成你自己帝国CMS网站后台对应的模板标签ID。

注3:浏览生成的baidu.txt文件,看看是否已经正确地生成了网址,并检查下网址内容是否为带有HTTP开始的绝对URL格式(如:http://www.baidu.com/pinpai/1.html,http://www.baidu.com/pinpai/2.html,http://www.baidu.com/pinpai/1.html)

如果txt文件中的网址不是带HTTP的绝对URL格式,进入网站参数修改调整。

三 添加PHP代码实现主动推送功能

在线版本:

<?php
$values = fopen('baidu.txt','r') or die("打开文件失败");
$value = fread($values,filesize('baidu.txt'));
$value = rtrim($value,",");
$urls =explode(',', $value);
$api = 'http://data.zz.baidu.com/urls?site=e9china.net&token=CQv8o2daadwyr3QK';
$ch = curl_init();
$options =  array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\r\n", $urls),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo $result;
echo '<pre>' .htmlspecialchars(print_r($urls, true)) . '</pre>';
?>

注:以上代码只要替换3处,就可以匹配你的网站。

第一行和第二行的baudu.txt,换成你的帝国CMS网站后台的自定义页面文件名称即可,另外就是要注意这个PHP文件,最好也是上传到网站根目录,和baidu.txt并行,这样就不需要在代码中加入文件的路径,以免找不到网址文件而出错。

把$api=” http://data.zz.baidu.com/urls?site=e9china.net&token=CQv8o2daadwyr3QK”这一行,引号内的字符换成你的网站的API。怎么找?登陆百度站长平台,点击左侧的链接提交,就会看到下图。

上传PHP文件至网站服务器。如Sandy'Blog的URL地址是:http://blog.e9china.net/baidu.php 直接在浏览器中访问它。就会自动提交到百度去,然后你再次配合云监控类似的产品就可以实现更新了.这里就不说了!重点介绍是服务器执行推送.......

服务器版本

<?php
$values = fopen('/home/wwwroot/baidu.txt','r') or die("打开文件失败");
$value = fread($values,filesize('/home/wwwroot/baidu.txt'));
$value = rtrim($value,",");
$urls =explode(',', $value);
$api = 'http://data.zz.baidu.com/urls?site=e9china.net&token=CQv8o2daadwyr3QK';
$ch = curl_init();
$options =  array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\r\n", $urls),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo $result;
echo '<pre>' .htmlspecialchars(print_r($urls, true)) . '</pre>';
?>

注:以上代码只要替换3处,就可以匹配你的网站。

第一行和第二行的baudu.txt,换成你服务器访问的目录路径即可,另外就是要注意这个PHP文件,最好也是上传到网站根目录,和baidu.txt并行,这样就不需要在代码中加入文件的路径,以免找不到网址文件而出错。

把$api=” http://data.zz.baidu.com/urls?site=e9china.net&token=CQv8o2daadwyr3QK”这一行,引号内的字符换成你的网站的API。怎么找?登陆百度站长平台,点击左侧的链接提交,就会看到下图。

上传PHP文件至网站服务器。记住上传的目录路径即可,下一步会使用到:

先看看你的服务器PHP路径是什么?

which php

然后进入crontab计划任务

crontab -e

加入每天早上8点提交给百度:

0 8 * * * /usr/bin/php /home/wwwroot/baidu.php

到此全部工作结束.......不管新站或者老站收录这个问题是个问题.所以好好对待吧!

这里提一下为什么Sandy比较推崇从服务器执行而且不是利用其它平台是执行最后一步自动化的主动推送功能呢?

首先服务器执行是自己可以掌控的.(-_-!控制狂魔,其实放云端也可以控制.只是总感觉不舒服)

其次可以少注册一个账户,少被广告骚扰.像阿里云的云监控有事没事给你发给广告.受不了.谁让你用了人家免费产品呢?

[/reply]

  1. 胡歌说道:

    这个可以

  2. 啊啊啊说道:

    萨大声的阿斯顿

发表评论

邮箱地址不会被公开。 必填项已用*标注