随着科技和经济水平的提高,普通大众创建一个属于自己的小小的博客已不是什么难事。但很多网站都没能很好的利用百度这个搜索引擎,导致网站收录不好,可以说很多内容是写给自己看的(毫不夸张)。如果网站更新稍微频繁一点的话,百度都会给大约100000条/天的网址提交额度。接下来这篇文章就是写给:不会写代码又不太愿意花钱买各种各样的高级插件(包括但不限于:WordPress插件(贼贵)&宝塔面板插件(更贵,不支持买断,还要按月(年)续费))来实现网址推送的目的,其实这些东西最后都要利用百度官方的api推送接口,用一句不文明的话说就是:换了张好看的皮!
开始前的必备条件:①基于WordPress的网站(其实非必要,只要你有txt格式的网站地图即可,例如本站的:TXT地图);
②云服务器(共享虚拟主机的用户就不用往下看了;独享虚拟主机,博主我没买过,不确定行不行).
1、以下适用于没用安装宝塔面板的用户:
第一步,在你的服务器中安装crontabs包,Centos系统命令如下(请根据你自己实际的系统来修改命令):
yum install crontabs
第二步,查看crontabs状态:
service crond status
第三步,手动启动crontab服务:
service crond start
第四步,查看crontab服务是否已设置为开机启动:
ntsysv
第五步,如果没有设置为开机启动,执行下面这个命令设置开机自启:
chkconfig crond on
第六步,在crontab中设置计划任务:
crontab -e #使用这个命令进入计划任务设置
第七步,按”i”进入输入模式,然后内容的末尾添加要执行的时间和频率:
0 */2 * * * bash /www/bash/baidu_url_sub/bd_url_sub.sh
# 以上命令表示每两个小时推送一次链接到百度,更多自定义方法请看扩展知识!!!
# 请把”/www/bash/” 替换为你自己的文件的实际位置,脚本后面我会提供下载链接
扩展知识:
cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使 用计时器的功能。
参数含义:
-e 编辑该用户的计时器设置。
-l 列出该用户的计时器设置。
-r 删除该用户的计时器设置。
-u <用户名称> 指定要设定计时器的用户名称。
基本格式 :
* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用 /1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列表示星期0~6(0表示星期天)
第6列表示要运行的命令
示例:
0 6 * * * bash /www/bash/baidu_url_sub/bd_url_sub.sh #每天6点推送网址
0 */2 * * * bash /www/bash/baidu_url_sub/bd_url_sub.sh # 每隔2个小时推送一次网址
0 23-7/2 * * * bash /www/bash/baidu_url_sub/bd_url_sub.sh # 晚上11点到早上8点之间每两个小时推送一次网址
0 12 15 * 1-3 bash /www/bash/baidu_url_sub/bd_url_sub.sh # 每个月的15号和每个星期的星期一到星期三的中午12点推送网址
5,15,25 16,17,18 * * * bash /www/bash/baidu_url_sub/bd_url_sub.sh # 每天的下午4点、5点、6点的第5分钟、15分钟和25分钟时推送网址
第八步,按“ESC”键退出编辑模式,输入英文”:”符号,然后输入wq,即可保存并退出;
第九步,我们可以使用 crontab -l 命令查看所有计划任务,验证是否添加成功.
2、以下内容适用于已安装宝塔面板的用户:
第一步,在宝塔面板的计划任务中添加新任务,任务类型就选择默认的Shell脚本;
第二步,在脚本内容里输入 “bash /www/bash/baidu_url_sub/bd_url_sub.sh” (不要双引号,路径请替换为你自己的);
3、TXT格式的网站地图获取:
由于博主的网站是基于WordPress做的,所以就只针对WordPress网站做一下说明,使用其他程序的网站,请自行百度对应的TXT格式网站地图生成方式!!
方式一:安装WP TXT Sitemap插件,该插件的设置选项不同寻常,位置在:设置>阅读,生成的文件名为sitemap.txt,位于网站根目录下,可以直接在你的域名后加/sitemap.txt进行查看,例如:https://pucqx.cn/sitemap.txt
方式二:将以下代码另存为ping.php文件,注意使用utf-8格式,然后将其上传到你的WordPress安装根目录里
<?php
require(‘./wp-blog-header.php’);
header(‘Content-type: application/txt’);
header(‘HTTP/1.1 200 OK’);
$posts_to_show = 50000; // 限制最大文章数量
?>
<?php
header(“Content-type: text/txt”);
$myposts = get_posts( “numberposts=” . $posts_to_show );
foreach( $myposts as $post ) { ?>
<?php the_permalink(); ?><?php echo “\n”; ?>
<?php } ?>
设置伪静态
①、Nginx
编辑已存在的Nginx伪静态规则,新增如下规则后(平滑)重启nginx即可:
rewrite ^/ping.txt$ /ping.php last;
②、Apache
编辑网站根目录的 .htaccess ,加入如下规则:
RewriteRule ^(ping)\.xml$ $1.php
做好伪静态规则后,可以访问sitemap.xml,看看伪静态是否设置成功了
最后我们输入https://pucqx.cn/ping.txt就可以看到无插件纯代码生成txt格式的网站地图了
以上两种方式任选一种即可!
4、执行频率的设置:
具体执行频率的设置需要根据网站地址条数来设定,以本站为例,每次生成的sitemap.txt大约为2700条数据,100000额度的话需要执行大约37次,于是我设定了6个相同的任务,每个任务都是隔四个小时执行一次. 也许你会问为什么不用循环?千万不能用循环!!我尝试修改成循环,提交了不到两轮,服务器IP被百度防火墙给屏蔽了,之后尝试每次提交一条,也都没有返回结果,所以千万不要改成循环!
5、参数修改:
请修改bd_url_sub.sh中的推送接口,获取地址为:https://ziyuan.baidu.com/linksubmit/index
请修改get_urls.py中的请求地址
如果你想使用SMTP邮件推送,请配置notice.py中的参数
如果你有什么疑问或问题,请评论留言!如果文章中有纰漏之处,欢迎批评指正!
评论前必须登录!
立即登录 注册